これら 2 つの異なる数値だけを使用すると、if($a == $b){echo 'equal';} の結果は 'equal' が出力されます。大きすぎて範囲を超えていることはわかっています。$a を出力した結果単独では: 1.2345678912346E 16 16 進数 このような大きなデータを比較する最良の方法は何でしょうか?
php BC高精度関数ライブラリ
リーリー
自分のコンピュータでテストしたところ、長さが 14 文字を超えると PHP が失敗します。 システムや PHP バージョンが異なれば、長さも異なります。
関連情報公式マニュアル
方法 1:
方法 2: ここでは次のアイデアのみを提供します
浮動小数点を介して直接比較したい場合は、方法がありません。
まず
整数部分の桁数を取得し、長さを比較し、サイズを比較します。
整数部分が等しい場合は、小数部分を比較します。
ヒント: 数は無限であることを考慮して、分割後の数の長さにも注意する必要があります。それが長い場合は、再度分割します。
php BC高精度関数ライブラリ
リーリーリーリー
自分のコンピュータでテストしたところ、長さが 14 文字を超えると PHP が失敗します。 システムや PHP バージョンが異なれば、長さも異なります。
関連情報公式マニュアル
方法 1:
リーリー方法 2:
ここでは次のアイデアのみを提供します
浮動小数点を介して直接比較したい場合は、方法がありません。
まず
整数部分の桁数を取得し、長さを比較し、サイズを比較します。
整数部分が等しい場合は、小数部分を比較します。
ヒント: 数は無限であることを考慮して、分割後の数の長さにも注意する必要があります。それが長い場合は、再度分割します。
リーリー