如何解决java中的Math.ceil()中的答案会有所不同吗?
当我在以下代码的 0.0 +
方法中使用 Math.ceil()
时,op=1
和 cl=11
的答案是 7,这是正确的。
(int)(Math.ceil((0.0 + op) / 2) + Math.ceil((0.0 + cl) / 2))
但是当我不使用 0.0 +
时,答案是 5。
有人能帮我理解一下吗?
解决方法
因为没有 0.0
,表达式 op / 2
适用于整数值并产生整数:1/2
将返回 0
作为整数,而不是 0.5
。>
使用 0.0 +
,您将第一个操作数强制为双精度,然后除法对双精度进行运算,1.0 / 2
将按预期给出 0.5
。
注意:另一种(首选)方法是将您的操作数显式转换为双倍,而不是使用 0.0 +
技巧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。