考慮下面的代碼片段:爲什麼50000 * 49999等於-1795017296?
public class Test {
public static void main(String[] args) {
long result = 50000 * 49999;
System.out.print(result);
}
}
我跑這個程序,它產生的-1795017296
的輸出,而不是預期的2499950000
。有人可以解釋我爲什麼會出現這種情況嗎?
'50000'和'49999'是int文字。試試50000L * 49999; – Eran
**或**,'long result =(long)50000 * 49999;' –
如果您希望獲得更高的值,請參閱java中的BigInteger類。在你的情況下,在50000和49999之前保持一個(長)的工作。 – SmashCode