每當我試圖分割兩個整數時,當整數大於21474836
時我得到了一些奇怪的結果 - 我認爲這是一些數據類型限制的情況,但是int
埃格爾顯然要大得多:2147483647
。分區返回相反(負數)結果
正如我所說,只有當兩個整數大於21474836
時纔會發生這種情況。
工作(因爲整數比21474836
下):
(11474836 * 100)/11474836 // returns 100
不工作:
(211474836 * 100)/211474836 // returns 0, should 100
(31474830 * 100)/31474837 // returns -99, should 99~
(40000000 * 100)/41474837 // returns -7, should 96~
看到現場演示這裏:http://ideone.com/lAeneM
問題是什麼?
我看來,像功課的問題... –
我不知道你在想什麼做乘法.. 。 –
嘗試用'100ULL'代替'100'。 –