使用模指數(shù)在使用費馬素數(shù)檢驗對于大量(100,000+),它需要一些非常大的計算。當(dāng)我將兩個大數(shù)(例如:62574和62574)相乘時,PHP似乎將結(jié)果轉(zhuǎn)換為浮點數(shù)。得到它的模數(shù)值會返回奇怪的值。$x = 62574 * 62574;
var_dump($x); // float(3915505476) ... correct
var_dump($x % 104659); // int(-72945) ... wtf.有沒有辦法讓PHP正確地執(zhí)行這些計算?或者,是否有另一種方法可以找到適用于大數(shù)的模數(shù)值?
3 回答

POPMUISE
TA貢獻1765條經(jīng)驗 獲得超5個贊
出于某種原因,PHP中有兩個標(biāo)準(zhǔn)庫處理任意長度/精度數(shù)字:BC數(shù)學(xué)和GMP..我個人更喜歡GMP,因為它更新鮮,有更豐富的API。
基于GMP我實現(xiàn)了十進制2類用于存儲和處理貨幣金額(如100.25美元)。

慕蓋茨4494581
TA貢獻1850條經(jīng)驗 獲得超11個贊
$num1 = "123456789012345678901234567890"; $num2 = "9876543210"; $r = mysql_query("Select @sum:=$num1 + $num2"); $sumR = mysql_fetch_row($r); $sum = $sumR[0];
- 3 回答
- 0 關(guān)注
- 615 瀏覽
添加回答
舉報
0/150
提交
取消