我有:
var a = 0.0532;
var b = a * 100;
b应返回5.32,而是返回5.319999999999999。我该如何解决这个问题?
JSFiddle: http://jsfiddle.net/9f2K8/
答案 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);