问题描述
作为标题
当我使用 toFixed 转换浮点数时
(0.2).toFixed(4) -> 0.2000
(444.2).toFixed(4) -> 444.2000
(0.2).toFixed(14) -> 0.20000000000000
(444.2).toFixed(14) -> 444.19999999999999 //why ?!!!
我不明白是什么导致了这个结果。
是否有任何 javascript 方法可以避免此问题?
解决方法
浮点数不能以二进制精确表示所有小数。解决这个问题的一种方法是使用 parseFloat:
console.log(parseFloat((444.2).toFixed(14)));