我无法理解以下两个为什么会有区别:

double d = 251.2453;
System.out.println(d);
d = .01 * ((int) (d * 100));
System.out.println(d);

输出量

251.2453
251.24

与下面的输出结果相比,该结果是在转换前除以100而不是乘以.01:
double d = 251.2453;
System.out.println(d);
d = ((int) (d * 100)) / 100;
System.out.println(d);

输出量

251.2453
251.0

最佳答案

在第二种情况下,您将Integer除以Integer,因此结果是Integer,而在第一种情况下,您将其乘以0.1,并因此转换为浮点数。

10-06 03:47