php - 浮動小数点データの比較サイズが大きすぎます
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-21 10:11:00
0
4
902
リーリー

これら 2 つの異なる数値だけを使用すると、if($a == $b){echo 'equal';} の結果は 'equal' が出力されます。大きすぎて範囲を超えていることはわかっています。$a を出力した結果単独では: 1.2345678912346E 16 16 進数 このような大きなデータを比較する最良の方法は何でしょうか?

曾经蜡笔没有小新
曾经蜡笔没有小新

全員に返信(4)
某草草

php BC高精度関数ライブラリ

リーリー
いいねを押す +0
扔个三星炸死你

リーリー

いいねを押す +0
仅有的幸福

自分のコンピュータでテストしたところ、長さが 14 文字を超えると PHP が失敗します。 システムや PHP バージョンが異なれば、長さも異なります。

関連情報公式マニュアル

方法 1:

リーリー

方法 2:
ここでは次のアイデアのみを提供します

浮動小数点を介して直接比較したい場合は、方法がありません。

  1. まず

  2. で区切られます
  3. 整数部分の桁数を取得し、長さを比較し、サイズを比較します。

  4. 整数部分が等しい場合は、小数部分を比較します。

ヒント: 数は無限であることを考慮して、分割後の数の長さにも注意する必要があります。それが長い場合は、再度分割します。

いいねを押す +0
洪涛

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート