我正在尝试尝试以下代码片段产生错误结果的问题。我假设某些数据处理不当但无法得到正确答案。
int v=1000000000;
System.out.println(Math.round(3*v*Math.cos(Math.toRadians(30))));
输出:-1121474575
预期产出:2598076211
答案 0 :(得分:3)
Integer.MAX_VALUE
为2,147,483,647,但v*3
为3,000,000,000,由于整数溢出而导致负数。
如果你想使用那么大的整数,你必须使用long
。