Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我应该Math.round(1/2)在 Java 中声明为 int 还是 double?如果两者都很好,哪个更正确?
Math.round(1/2)
另外,为什么 Eclipse 告诉我 Math.round(1/2) = 0.0, 而 Math.round(0.5) = 1.0 ?
任何帮助,将不胜感激!
编译器首先计算表达式 1/2。这两个数字都是整数,所以它做整数数学。在整数中,1 除以 2 为 0。然后,它将 0 转换为 double 以将其传递给 Math.round()。
如果你想要一个正确的答案,你需要传递双打:你可以通过使用 1.0/2.0 而不是 1/2 来做到这一点。
1/2是 0,因为它是一个整数表达式。
1/2
如果您想要浮点值,请说1.0/2.0(或只是1./2)。
1.0/2.0
1./2