Javascript 为什么我的toFixed()函数不起作用?

Javascript 为什么我的toFixed()函数不起作用?,javascript,jquery,number-formatting,Javascript,Jquery,Number Formatting,这是相关代码。我已经通过警报确认保存了正确的数字,只是没有更改为小数点后2位 if ($(this).attr('name') == 'time') { var value = $(this).val(); parseFloat(value).toFixed(2); alert(value); editEntry.time = value; } 您没有将解析后的浮点值赋回您的值变量: value = parseFloat(value).toFixed(2);

这是相关代码。我已经通过警报确认保存了正确的数字,只是没有更改为小数点后2位

if ($(this).attr('name') == 'time') {
    var value = $(this).val();
    parseFloat(value).toFixed(2);
    alert(value);
    editEntry.time = value;
}

您没有将解析后的浮点值赋回您的值变量:

value = parseFloat(value).toFixed(2);

应该解决问题。

您的转换数据是响应[25],请按照以下步骤操作

var i = parseFloat(response[25]).toFixed(2)
console.log(i)//-6527.34
简单(有效)示例:

document.getElementById(“EDTVALOR”).addEventListener(“更改”,函数(){
this.value=this.value.replace(“,”,“);
this.value=parseFloat(this.value).toFixed(2);
如果(该值小于0){
该值=0;
}
this.value=this.value.replace(“.”,“,”);
this.value=this.value.replace(“NaN”,“0”);
});
我多次尝试函数toFixed(2)。每次控制台显示“toFixed()不是函数”

但我是如何解决的是通过使用Math.round()

例如:


这件事对我来说肯定很有用,也许对你们也有帮助…

你们的值不能是整数,所以加0将值转换成整数,然后toFixed()就可以了。

注意:.toFixed(x)将返回一个字符串object,你们不能把它乘以1吗?我认为它应该是value=parseFloat(value.toFixed(2));也就是说,除非您想要一个字符串作为值。ToFixed返回一个字符串,在内部执行ToFixed将使该值保持为一个数字。该值被分配给一个输入表单字段,该字段始终是一个字符串。@dchin指出一个有效点。。。如果需要返回一个数字,则应该这样做。@dchin如果要将0拖到某个位置,例如百分之一或千分之一,则需要将其作为字符串保留这么多数字。例如,如果位数不变,计数器看起来更稳定。parseFloat很可能会导致您丢失尾随数字,如果您将其保留为数字,则会撤消“3位小数”占位符0位,对吗?
var a=Number.parseFloat($("#budget_project").val()); // from input field
var b=Number.parseFloat(html); // from ajax
var c=a-b;
$("#result").html(c.toFixed(2)); // put to id='result' (div or others)
document.getElementById("EDTVALOR").addEventListener("change", function() {
  this.value = this.value.replace(",", ".");
  this.value = parseFloat(this.value).toFixed(2);
  if (this.value < 0) {
    this.value = 0;
  }
  this.value = this.value.replace(".", ",");
  this.value = this.value.replace("NaN", "0");
});
if ($(this).attr('name') == 'time') {
    var value = parseFloat($(this).val());
    value = Math.round(value*100)/100; // 10 defines 1 decimals, 100 for 2, 1000 for 3
    alert(value);
}