Java:为什么这个双变量出现0?

时间:2014-04-05 18:22:11

标签: java double zero

我正在使用Java 1.6     最后的双重检查= 3/4;     的System.out.println(检查);

控制台显示:0.0

为什么会这样?它不应该出现0.75?

4 个答案:

答案 0 :(得分:2)

制作:

double check = 3.0 / 4;

它会起作用。您得到0,因为3 / 4是一个整数除法,其值为0

答案 1 :(得分:0)

因为两者都是整数,所以结果也是整数。

将任何一个投射成双重像这样:

double check = (double)3 / 4;

答案 2 :(得分:0)

通过做:

3 / 4

您正在执行整数除法,因为34int常量,而不是double s。结果是int。但是,由于您要将其分配给double,因此分部的结果将被提升为double。但是在这一点上为时已晚,因为整数除法将产生0!

你需要这样做:

3.0 / 4

要获得所需的结果,因为在这种情况下,4会自动提升为double,而除法的结果也会是double

要完全确定会发生什么,如果你喜欢对称,你也可以写:

3.0 / 4.0

答案 3 :(得分:0)

你正在划分整数并将结果赋值为double。在两个int值的java除法中总是产生一个int 因此,请将语句double check = 3 / 4;更改为double check = 3.0 / 4;