altplusaltplusB3Sスタッフの技術紹介サイトです。2016年7月20日TwitterFacebookGoogle+LinkedInPocket突然ですがPHPの浮動小数点演算について紹介です。PHPで正確な小数点計算はできない!PHPでの正確な小数点計算方法を求めてでググって来られた方には申し訳ありませんが結論から申しますと電卓のような小数点計算はできません。論より証拠、まずはコチラを見て下さい。falseあれれ、おかしいな。trueじゃないんだろう?理屈は次のとおりです。数値はハードウェア的に2進数で表現されており、浮動小数点数は正確に表現できません。fraction)となります。ここで曲者有り難いのがPHPの表示仕様です。小数値に対して2進数近似値である10進小数での近似値を表示するので、var_dumpしても勝手に丸まって見えているという事に気づかないのです。他の言語でも浮動小数点数問題はありますが、ここまでフワッとしている仕様はPHPならではではないでしょうか。これらの値はnumber_formatで文字列表記してみるとよくわかります。(length=102)そりゃズレますよね。ちなみに差分を出すとこんなカンジです。5.55111512313E-17またひとつ勉強になりました。出来ないのかという問い合わせにはこう答えましょう。「浮動小数点数はハードウェア的に2進数で保有されており、循環小数となるため近似値でしか表せません!」と。詳しくはマニュアルを確認して下さい。えだよろしければシェアお願いしますTwitterFacebookGoogle+LinkedInPocketgridster.jsで遊ぶNextnode.js使ってみた[導入編]Prev関連記事PHPでPOSTが飛ばない!(max_input_vars)あけましておめでとうございます。...超絶初心者がCodeIgniterを一から導入やってみましたこんにちは、ダディです。個人的にはLaravelのFormRequest機能がいい感じです。...PHPでの未入力チェック方法(多重配列対応)PHPでの未入力(空文字)チェックは0とスペースの判定に困ります。...ディスカッションコメント一覧まだ、コメントがありませんコメントを残すコメントをキャンセルこの記事のトラックバックURL新着記事[MySQL]ウインドウ関数お久しぶりでございます。...自作HPが突然見れなくなってしまった!!こんにちは。...Googleドキュメントの「写真のファイルをテキストに変換する」をやってみた。お久し振りです!ぽんてです。...Ajaxのデバッグを簡単に実行したい!!ブログの更新を頑張っています。~プッシュ通知編~はちです。