bccomp
函數用于比較兩個浮點數(或字符串表示的浮點數)
function bccomp_handle_tiny_values($a, $b) {
// 將輸入值轉換為字符串,以便處理極小值
$a_str = bcmul($a, '1e' . max(0, -strlen($a) - 1));
$b_str = bcmul($b, '1e' . max(0, -strlen($b) - 1));
// 使用 bccomp 進行比較
$result = bccomp($a_str, $b_str);
// 如果結果為 0,則表示兩個值相等;否則,根據結果的正負判斷大小關系
if ($result == 0) {
return "Equal";
} elseif ($result > 0) {
return "Greater than";
} else {
return "Less than";
}
}
// 示例
echo bccomp_handle_tiny_values("0.000001", "0.0000001"); // 輸出 "Greater than"
echo bccomp_handle_tiny_values("0.0000001", "0.000001"); // 輸出 "Less than"
echo bccomp_handle_tiny_values("0.000001", "0.000001"); // 輸出 "Equal"
在這個示例中,我們首先將輸入值乘以一個適當的 10 的冪次,以便將它們轉換為具有相同數量的小數位的字符串表示。然后,我們使用 bccomp
函數進行比較,并根據結果判斷兩個值的大小關系。