如何避免或解决地板功能和错误表示的整数?

时间:2015-10-23 23:42:49

标签: javascript rounding

所以我试图获取一个可以是任何正数形式的数字并将其缩小到两位小数。例如,我的输入为145.26。但是在我的代码中,这将被舍入到145.19。这是我正在使用的代码:

        var multiplier = 100;
        var adjustedNum = input * multiplier;
        var truncatedNum = Math[adjustedNum < 0 ? 'ceil' : 'floor'](adjustedNum);
        var fixedResult =  truncatedNum / multiplier;

所以基本上我的'输入'应该变成145200.然而它实际上变成了145199.9999995或类似的东西。这导致Math.floor方法将其向下舍入。有没有办法解决或避免这种情况?

1 个答案:

答案 0 :(得分:1)

将数字乘以10的额外因子来围绕它。然后将其除以10以应用floorceil

var multiplier = 100;
var adjustedNum = Math.round(input * multiplier * 10);
var truncatedNum = Math[adjustedNum < 0 ? 'ceil' : 'floor'](adjustedNum/10);
var fixedResult =  truncatedNum / multiplier;