Possible Duplicate:
Is JavaScript’s Math broken?
我正在 JavaScript 中运行一些非常基本的函数来尝试将 float 转换为货币。例如:
var t = Array(15.90, 15.95, 15.95);
var x = t[0];
if(x%1 == 0)
output += ".0";
if(x%.1 == 0)
output += "0";
输出应为 0
,但由于某种原因,在某些情况下,这不起作用,当我将 x 的值回显到控制台时,我会得到 15.89999999999
或15.900000000001
。为什么?
感谢您的帮助。
最佳答案
您只需 toFixed()
即可打印出您想要的小数位数:
var priceString = price.toFixed(2);
这将始终为您提供一个格式为小数点后两位的数字。
我知道这里很多人会告诉您不要使用浮点进行基于货币的计算。然而,我发现 float 的精度对于合理的美元金额来说已经足够了。除非你将大金额乘以小百分比,否则你不会损失一分钱。例如:1000000 * .0000001 = .099999999
关于javascript - 为什么 JavaScript 中 143.55 等于 143.54999999999?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168954/