java - Double.intValue() 是如何工作的?

标签 java integer double

这段代码

Double dbl = 254.9999999999999;
Integer integ = dbl.intValue();
System.out.println(integ);

显示 254,但多了一个“9”

Double dbl = 254.99999999999999;
Integer integ = dbl.intValue();
System.out.println(integ);

它已经是 255.. 为什么?

最佳答案

要知道 double 的确切值,您可以使用 BigDecimal:

System.out.println(new BigDecimal(254.9999999999999));
System.out.println(new BigDecimal(254.99999999999999));

打印:

254.9999999999998863131622783839702606201171875
255

所以这仅仅是由于(限制) double ......

关于java - Double.intValue() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603243/

相关文章:

java - 带有选项卡的 JFrame 未显示

java - java中使用arraylist填充JTable

java - java hdfs客户端是否需要有core-site.xml和hdfs-site.xml才能连接?

java - 整数在使用正数的乘法中在java中给出负值

php - 防止双重投票

java - 如何将该数组的每个元素放入字符串中?

c - 从文件中读取一个整数

python - 通过重新排列列表构建可能的最大数字

java - 为什么Java除以0.0时不抛出异常?

java - 将 textView 中的 double 值保存到变量