Javascript 乘以100后的值错误

Javascript 乘以100后的值错误,javascript,Javascript,当该值1212.3456789123与100相乘时,jQuery显示12.12345678912303而不是12.123456789123 代码: 12.123456789123 算计 $(':按钮')。单击(函数(){ $('p.price').text(函数(i,v){ 返回v*100; }); this.disabled=true; }); JavaScript在浮点数精度方面存在问题 如果你想在JS中得到精确的结果,比如当你处理金钱的时候,你需要使用类似于的东西,这是一个舍入误差。不要对

当该值1212.3456789123与100相乘时,jQuery显示12.12345678912303而不是12.123456789123

代码:

12.123456789123

算计 $(':按钮')。单击(函数(){ $('p.price').text(函数(i,v){ 返回v*100; }); this.disabled=true; });
JavaScript在浮点数精度方面存在问题


如果你想在JS中得到精确的结果,比如当你处理金钱的时候,你需要使用类似于

的东西,这是一个舍入误差。不要对货币值使用浮点类型;你最好用最小的整数单位来计算价格。这样精确的价格单位是很不寻常的。如果确实需要使用浮点类型,请使用
1e-12*Math.round(1e14*v)

小数部分有12位数字,因此当12.123456789123乘以100
1212.3456789123
不包含12位数字,因此它将填充剩余的数字。

由于浮点值的不精确性(这不是JavaScript的错误),您需要更具体,即:

$('p.price').text(function (i, v) {
    return (v * 100).toFixed(10);
});

其中
.toFixed(10)
确定所需分数的大小。

再次检查它可能会在末尾显示额外的“随机”数字,但如果数字最初为“12.x”,则整数部分将为“1212.x”。您是否错误地复制了输出?这与jquery有关,这是由于javascript浮动数字表示。您可能还想查找以下问题:
$('p.price').text(function (i, v) {
    return (v * 100).toFixed(10);
});