Math.round MAX可返回值

时间:2012-04-03 12:38:42

标签: java

我正在使用Math.round,我发现它不会返回任何大于(2 ^ 32/2)-1的值,但是文档声明它可以/将返回长值,即2 ^ 64 ..下面有一段代码片段。

long bTmp = (long)Math.round(4294967296L);
System.out.println(bTmp);
System.out.println(Long.MAX_VALUE);

输出:

2147483647
9223372036854775807

我错过了什么吗?

1 个答案:

答案 0 :(得分:11)

调用Math.round()的重载,需要float并返回int。看到 the javadoc

尝试:

Math.round((double) 4294967296L)