标签: java math
您好我正在尝试用Java语言编写标题中的数学: Math.max(-1500000000 - 1500000000,0) 在数学上,上面的等式应该返回0,但我得到了1294967296。
任何人都可以解释它背后的理论以及如何克服这种限制吗?
感谢。
答案 0 :(得分:1)
理论上你在int中溢出了32位。修复方法是使用long文字。
int
long
Math.max(-1500000000L - 1500000000L, 0)