我想知道为什么当我编写语句9223372036854775807
时Java会给我打印那个数字System.out.print(Math.round(6.02e23)
。 java到底在做什么?
答案 0 :(得分:7)
Math.round()
返回一个long
。但是您的数字溢出了Long
的最大值,这使其可能返回最大的long
值:9223372036854775807
来自the JavaDoc:
如果参数为正无穷大或大于或等于 等于Long.MAX_VALUE的值,结果等于该值 Long.MAX_VALUE 。
6.02e23 = 602000000000000000000000
Long.MAX_VALUE = 9223372036854775807