这段代码
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/