众所周知,在javascript中添加十进制(float)值时,有时会得到有趣的结果。示例:
0.1 + 0.2 -> 0.30000000000000004
要解决我用.ParseFloat()
实现.toFixed()
的问题,就像有这么多的SO问题可以作为答案一样:
parseFloat((profitTotal - taxesTotal).toFixed(10))
然后将其转换为货币,我从另一个SO答案中总结出来:
(parseFloat((profitTotal - taxesTotal).toFixed(10))).toLocaleString('en-US', {style: 'currency', currency: 'USD',}))
但是,我突然意识到我可以消除ParseFloat
和toFixed
并执行以下操作:
(profitTotal - taxesTotal).toLocaleString('en-US', {style: 'currency', currency: 'USD',})
...并在大多数情况下以正确的值结束。到目前为止,这似乎在我测试过的每种情况下都有效(不是很多)。我认为我永远不会用太多小数位结束。但是,我担心在某些情况下我最终可能会花掉几分钱?
有人知道我的最后一次转换在加/减钱时是否能正常工作吗?