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