我正在使用Math.round,我发现它不会返回任何大于(2 ^ 32/2)-1的值,但文档声明它可以/将返回长值,即2 ^ 64 ...有一个下面的代码片段.
long bTmp = (long)Math.round(4294967296L);
System.out.println(bTmp);
System.out.println(Long.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)
哪个输出:
2147483647
9223372036854775807
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
Sim*_*son 11
它调用的重载Math.round()需要a float并返回一个int.请参阅
javadoc.
尝试:
Math.round((double) 4294967296L)
Run Code Online (Sandbox Code Playgroud)