|
|
1
0
看起来像一个简单的案例 binary floating point imprecision .在一台机器上你得到40.49999999,四舍五入到40;在另一台机器上你得到40.500000000001,四舍五入到41。 如果您需要精确的数字,那么不应该使用二进制浮点。您可以使用定点小数或十进制浮点。
编辑:你说你用的是bigdecimal。为什么不使用
|
|
|
2
2
使用怎么样
|
|
|
3
1
改用%.0g |
|
|
4
1
Scottj的答案并不能解释你的问题——40.5可以用二进制表示。可能发生的情况是:Windows的printf“向上取整一半”,Ubuntu的printf“向上取整一半”。 |