Javascript 十进制js取整3位数[可能是个错误?]

Javascript 十进制js取整3位数[可能是个错误?],javascript,decimal,libraries,decimal.js,Javascript,Decimal,Libraries,Decimal.js,我使用decimal.js来计算数字,并利用处理大数字的优势 现在我想把数字四舍五入到一个特定的乘法器 一切正常,直到我发现这个问题 new Decimal(750).toNearest(500,3).toNumber() //-> 500 这条线将输出500。这仅仅是一个bug还是我在代码中犯了错误?如果这是一个错误,我想知道为什么它只发生在下面这个特定的数字 new Decimal(75).toNearest(50,2).toNumber() //-> 100 new Deci

我使用decimal.js来计算数字,并利用处理大数字的优势

现在我想把数字四舍五入到一个特定的乘法器

一切正常,直到我发现这个问题

new Decimal(750).toNearest(500,3).toNumber() //-> 500
这条线将输出500。这仅仅是一个bug还是我在代码中犯了错误?如果这是一个错误,我想知道为什么它只发生在下面这个特定的数字

new Decimal(75).toNearest(50,2).toNumber() //-> 100
new Decimal(7500).toNearest(5000,4).toNumber() //-> 10'000
当你在游戏中玩一点这些语句时

只有3位数字才能正确舍入:

new Decimal(300).toNearest(200,3).toNumber() //-> 200
new Decimal(450).toNearest(300,3).toNumber() //-> 300
new Decimal(600).toNearest(400,3).toNumber() //-> 400

请注意.toNearest函数中的第二个属性:

2:四舍五入(向上)
3:向-无穷远方向(向下)舍入
4:向最近的邻居射击。如果距离相等,则从零开始四舍五入

因此,您必须考虑预期结果应该是什么,并选择正确的舍入方法。舍入方法与位数无关

new Decimal(75).toNearest(50,2).toNumber() //-> 100
new Decimal(75).toNearest(50,3).toNumber() //-> 50
new Decimal(75).toNearest(50,4).toNumber() //-> 100