为什么我得到这个输出? Java的

时间:2016-10-08 15:37:51

标签: java

有人可以帮我解决这里发生的事吗?为什么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);
    }

}

1 个答案:

答案 0 :(得分:0)

使用double会丢失精度,就像保持8.7的值一样,它表示为8.6999 ...所以当你在乘法后将值转换为int时,你得到的只有8.69。您可以使用断点并通过执行程序查看probability的实际值。