我有一個公式來評估不同了在Java相同的函數的Python
((x+y-1)*(x+y-2))/2 + x
,並得到它的字符串表示。 所以在Java中1.7我寫
public static void main(String[] args)
{
int x = 99999;
int y = 99999;
int answer = ((x+y-1)*(x+y-2))/2 + x;
String s = Integer.toString(answer);
System.out.println(s);
}
,並在Python 2.7
def answer(x, y):
z = ((x+y-1)*(x+y-2))/2 + x
return str(z);
print(answer(99999,99999))
的Java給我放出來的672047173
而Python給了我19999400005
,似乎從Python的值是正確的。造成這種差異的原因是什麼?
的Java計算絕對溢在這種情況下。 – syntagma
來自我的愚蠢錯誤。感謝您的解釋。 –