有人可以帮我解决这里发生的事吗?为什么java编译器从下面的例子返回869?
package week1;
public class PercentagePrinter {
public static void main(String[] args){
double probability = 8.70;
int percentage = (int)(100 * probability);
System.out.println(percentage);
}
}
答案 0 :(得分:0)
使用double会丢失精度,就像保持8.7的值一样,它表示为8.6999 ...所以当你在乘法后将值转换为int时,你得到的只有8.69。您可以使用断点并通过执行程序查看probability
的实际值。