如果结果声明为double,则Division返回意外0

时间:2017-04-28 12:04:07

标签: groovy types

来自以下代码

x = 2 / 5
double y = 2 / 5
double z = 2.0 / 5
println(String.format("%f %f %f", x, y, z))

我们得到输出

0.4 0.0 0.4

为什么y的值为0.0?这种不直观行为的原因是什么?

1 个答案:

答案 0 :(得分:1)

因为除以两个整数(2和5)会得到结果0,然后将其转换为double。