使用Java我得到一个奇怪的结果
Double width = super.getWidth()/(32);
System.out.println(super.getWidth() + " " + width);
打印312 9.0
312/32应该是9.75?
答案 0 :(得分:4)
假设super.getWidth()
返回整数类型(int
,long
等),则在分割期间精度会丢失。当您将整数类型的值除以int
时,只保留结果的整数部分,而丢弃小数部分。
除以32.0
来解决问题:
double width = super.getWidth()/32.0;
System.out.println(super.getWidth() + " " + width);
答案 1 :(得分:2)
你需要
Double width = super.getWidth()/(32.0);
当java编译器遇到原始代码时,它会看到两个整数,并返回一个整数。这样,它会看到一个整数和一个double,因此返回一个double。
答案 2 :(得分:1)
尝试
Double width = super.getWidth()/(32.0);
System.out.println(super.getWidth() + " " + width);