乘积后,我有一些带有浮点数的情况。
我必须将数字四舍五入到最接近的百位,但是在这种情况下:
115000*4.35 //500249.99999999994
我会得到错误的结果:
Math.round(115000*4.35 / 100) * 100 //500200
而不是500300
解决方案:
第一次舍入到最接近的小数点后一位:
Math.round(500249.99999999994 * 10) / 10 //200250,
然后四舍五入到最接近的百位数:
Math.round(500250 / 100) * 100 //200300
组合:
Math.round(Math.round(num * 10) / 1000) * 100
有人知道这是否是解决问题的安全方法吗?它总是有效吗?
提前感谢!
四舍五入到最接近的整数可以简单地通过调用
Math.round(500249.99999999994)
因此四舍五入为最接近的百位数:
const num = 115000*4.35;
const roundedToNearestHundred = Math.round(Math.round(num) / 100) * 100;
console.log(roundedToNearestHundred);