我用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当你在decimal.js API玩这些语句的时候
只有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发布于 2016-10-12 11:58:17
请注意. in最近-函数:https://mikemcl.github.io/decimal.js/#modes中的第二个属性
2:迈向无限的回合(向上)
3:朝-Infinity射击(向下)
4:向最近的邻居发射子弹。如果距离相等,则从零开始。
因此,您必须考虑预期的结果应该是什么,并选择正确的舍入方法。舍入方法与位数无关。
new Decimal(75).toNearest(50,2).toNumber() //-> 100
new Decimal(75).toNearest(50,3).toNumber() //-> 50
new Decimal(75).toNearest(50,4).toNumber() //-> 100https://stackoverflow.com/questions/39997743
复制相似问题