This question already has answers here:
How to deal with floating point number precision in JavaScript?
                                
                                    (42个答案)
                                
                        
                2年前关闭。
            
        

在使用javascript四舍五入值时,我遇到了奇怪的问题。某些值未以正确格式四舍五入。

var n =17.955 ;
var roundedPrice;
roundedPrice = Math.round(n*100)/100;
console.log(roundedPrice); // It returns 17.95 instead of 17.96


对于某些特定值,例如16.955, 17.955, 18.955, 19.955,它正在发生。除了这些值(例如1.955, 12.955, 20.955, 27.955 ...)之外,此舍入函数返回正确的值。

编辑:仅在17.955中发生。这将返回正确的结果17.9555(3乘5)。

提前致谢。

最佳答案

您可以使用Math.ceil()来获得预期的结果。

10-06 09:25