我应该将Java中的Math.round(1/2)
声明为int还是double?如果两者都很好,哪个更正确?
另外,为什么Eclipse告诉我Math.round(1/2)= 0.0,而Math.round(0.5)= 1.0?
任何帮助将不胜感激!
答案 0 :(得分:14)
编译器首先计算表达式1/2。这两个数字都是整数,所以它做整数数学。在整数中,1除以2是0.然后,它将0转换为double,以便将其传递给Math.round()。
如果你想要一个正确的答案,你需要传递双打:你可以通过使用1.0 / 2.0而不是1/2来做到这一点。
答案 1 :(得分:6)
1/2
为0,因为它是整数表达式。
如果您想要浮点值,请说1.0/2.0
(或只是1./2
)。