JS乘以100得出奇怪的结果

时间:2014-01-31 05:09:43

标签: javascript multiplying

我有:

var a =  0.0532;
var b =  a * 100;

b应返回5.32,而是返回5.319999999999999。我该如何解决这个问题?

JSFiddle: http://jsfiddle.net/9f2K8/

3 个答案:

答案 0 :(得分:9)

你应该使用.toFixed()

<强> FIDDLE

var a =  0.0532;
var b =  a * 100;
b.toFixed(2);     //specify number of decimals to be displayed

答案 1 :(得分:1)

这不是错误。

非常简单地说,javascript试图尽可能精确地表示5.32。由于计算机不具有无限精度,因此它会选择最接近的数字:5.319999999999999

0.0000000000001的误差范围应该是可接受的,不是吗?

您始终可以将数字四舍五入到十进制数字。

答案 2 :(得分:0)

您可以使用ToFixed将其舍回:

b = b.ToFixed(2);