我正在javascript中运行一些非常基本的函数来尝试将浮点数转换为货币。例如:
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
或{ {1}}。为什么呢?
感谢您的帮助。
答案 0 :(得分:0)
你可以toFixed()
打印出你想要的小数位数:
var priceString = price.toFixed(2);
这将始终为您提供格式化为两位小数的数字。
我知道很多人会告诉你不要使用浮点进行基于货币的计算。但是,我发现浮点数的精度对于合理的美元金额来说已经足够了。除非你将大量的数量乘以小百分比,否则你不会失去便士。例如:1000000 * .0000001 = .099999999