双变量存储计算后的负值

时间:2016-10-10 19:39:16

标签: java

我正在尝试尝试以下代码片段产生错误结果的问题。我假设某些数据处理不当但无法得到正确答案。

int v=1000000000;
System.out.println(Math.round(3*v*Math.cos(Math.toRadians(30))));

输出:-1121474575

预期产出:2598076211

1 个答案:

答案 0 :(得分:3)

Integer.MAX_VALUE为2,147,483,647,但v*3为3,000,000,000,由于整数溢出而导致负数。

如果你想使用那么大的整数,你必须使用long

相关问题