$a = 12345678912345678.8;
$b = 12345678912345678.9;
就這2個不同數字,if($a == $b){echo '相等';}結果輸出'相等',我知道是太大超出他的範圍,單獨輸出$a的結果是: 1.2345678912346E 16十六進位的,請問像這種大的數據如何比較最好?
仅有的幸福2017-06-21 10:13:00
經過自己電腦上測試當長度超過14位元時, PHP就會益出。 不一樣的系統 不一樣的PHP版長度益出會不一樣。
相關資料 官方手冊
方法1:
$a = '12345678912345678.6';
$b = '12345678912345678.9';
if($a == $b) {
echo 1;
}
方法2:
這裡只提供下思路
如果想要直接透過浮點來比較沒有找到方法。
先將以.分隔
取得整數部分位數,比較長度,再比較大小。
諾整數部分相等再比較小數部分。
Tip:考慮到數的無限大,也要注意分隔之後的數長度的益出,若益出再進行分隔。