在Java中将double转换为整数
在Java中,我想将双精度型转换为整数,我知道您是否这样做: double x = 1.5; int y = (int)x; 您得到y = 1。如果您这样做: int y = (int)Math.round(x); 您可能会得到2。但是,我想知道:由于整数的双精度表示有时看起来像1.9999999998或类似的东西,因此通过Math.round()创建的双精度转换是否仍然会导致截断的向下数字,而不是比我们要寻找的舍入数(即:1而不是所示代码中的2)? (是的,我确实是这样说的:x 是否有任何值,其中y将显示结果被截断而不是四舍五入的x表示?) 如果是这样:是否有更好的方法可以将双精度型转换为舍入型整数而不冒被截断的风险? 找到了一些东西:Math.round(x)返回一个long,而不是double。因此:Math.round()无法返回看起来像3.9999998的数字。因此,int(Math.round())无需截断任何内容,并且始终可以工作。