我有一个双 (23.46)
使用方法 Math.ceil 和 Math.floor 并将我的双精度解析为这些方法,我得到返回给我的相同值,即 23 …
我希望它四舍五入为 24.. 换句话说,如果我有一个双倍的 15.01,它仍应四舍五入为 16…我该怎么做?
原文由 user818700 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个双 (23.46)
使用方法 Math.ceil 和 Math.floor 并将我的双精度解析为这些方法,我得到返回给我的相同值,即 23 …
我希望它四舍五入为 24.. 换句话说,如果我有一个双倍的 15.01,它仍应四舍五入为 16…我该怎么做?
原文由 user818700 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.4k 阅读
1 回答4.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
3 回答1.7k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
无法重现:
我怀疑 要么 你没有得到你认为你拥有的输入数据, 要么 你没有写出你认为你有的输出数据。
Math.floor
/ceil
自己工作正常。只有当输入已经是一个整数时,它们才会返回相同的值。你谈论 解析 你的双重……我的猜测是错误就在那里。请向我们展示一个简短但完整的程序来演示问题。(围绕非常大的值可能还有其他情况,其中确切的目标整数不能完全表示为
double
- 我没有检查过 - 但这里肯定不是这种情况。)