最佳答案
在 Java 中,我想把一个 double 转换成一个整数,我知道如果你这样做:
double x = 1.5;
int y = (int)x;
你得到 y = 1,如果你这样做:
int y = (int)Math.round(x);
你可能会得到2分。然而,我想知道: 由于整数的双重表示有时看起来像1.999999998或其他什么,有没有可能通过 Math.round ()创建一个双重表示仍然会导致一个截断的向下数字,而不是我们正在寻找的四舍五入数字(即: 1代表的代码中的2) ?
(是的,我的意思是: x 有 任何值吗,其中 y 将显示一个截断的结果,而不是 x 的四舍五入表示?)
如果是这样: 是否有更好的方法将一个 double 变成一个四舍五入的 int,而不会产生截断的风险?
计算结果: Math.round (x)返回一个 long,而不是 double。因此: Math.round ()不可能返回类似于3.9999998的数字。因此,int (Math.round ())将永远不需要截断任何内容,并且始终有效。