我正在使用Java 1.6 最后的双重检查= 3/4; 的System.out.println(检查);
控制台显示:0.0
为什么会这样?它不应该出现0.75?
答案 0 :(得分:2)
制作:
double check = 3.0 / 4;
它会起作用。您得到0
,因为3 / 4
是一个整数除法,其值为0
。
答案 1 :(得分:0)
因为两者都是整数,所以结果也是整数。
将任何一个投射成双重像这样:
double check = (double)3 / 4;
答案 2 :(得分:0)
通过做:
3 / 4
您正在执行整数除法,因为3
和4
是int
常量,而不是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;