当把数字6.02E23四舍五入时,java究竟在做什么?

当把数字6.02E23四舍五入时,java究竟在做什么?,java,Java,我想知道为什么java在我写那条语句时会把那个数字打印出来9223372036854775807(Math.round(6.02e23)。java到底在做什么?Math.round()返回一个long。但是您的号码溢出了long的最大值,这使得它返回可能的最大long值:9223372036854775807 发件人: 如果参数为正无穷大或任何大于或的值 等于Long.MAX_值,则结果等于 长.MAX_值的 @Lino这里没有溢出。Double进入~1.7E3086.02E23什么都不是(只有

我想知道为什么java在我写那条语句时会把那个数字打印出来9223372036854775807(Math.round(6.02e23)。java到底在做什么?

Math.round()
返回一个
long
。但是您的号码溢出了
long
的最大值,这使得它返回可能的最大
long
值:9223372036854775807

发件人:

如果参数为正无穷大或任何大于或的值 等于Long.MAX_值,则结果等于 长.MAX_值的


@Lino这里没有溢出。Double进入
~1.7E308
6.02E23
什么都不是(只有6万亿美元:)
6.02e23        = 602000000000000000000000 
Long.MAX_VALUE =      9223372036854775807