等于整数的双精度值是否总是强制转换为该整数?
等于整数的双精度值是否始终强制转换为该整数(假设双精度值不会导致溢出)。示例:Math.ceil() 将返回一个等于整数的双精度值。假设没有溢出,它是否总是被转换为它应该等于的相同整数?
如果没有,我如何将 a 舍入为 or ?double
int
long
等于整数的双精度值是否始终强制转换为该整数(假设双精度值不会导致溢出)。示例:Math.ceil() 将返回一个等于整数的双精度值。假设没有溢出,它是否总是被转换为它应该等于的相同整数?
如果没有,我如何将 a 舍入为 or ?double
int
long
是的,它将完全转换。这在 JLS 的第 5.1.3 节中进行了描述,其中提到
否则,如果浮点数不是无穷大,则浮点值将舍入为整数值 V,并使用 IEEE 754 四舍五入为零模式向零...
由于 您 正好等于 ,因此 “舍入” 值只是完全相同的值,但您可以阅读规范以获取详细信息。double
int