四則演算は必ず変数に格納するべき?

PHP・MySQL
| | コメント(0) | トラックバック(0)

PHPで、四則演算をすることって多々あると思います。

その中で、小数点を含む計算をしたときに、コンピュータは賢いようで賢くないので、誤計算をしてしまいます。

例えば、
(0.1 + 0.7) * 10
答は、8なのですが、
コンピュータが出した答は7

おいおい、ってなるんですよね。

PHPだと、bcadd()関数を使って計算しないとダメなのです。
乗算の場合は、bcmul()関数。


ところが、いろいろとやっているうちに、同じ計算をしているのに現象が起きるページと起きないページがあるんです。

なぜか?

違いを見比べて見たところ、
現象が起きているページ→計算結果を直接出力している。
現象が起きていないページ→計算結果を変数に格納してから、出力している。
PHPのバージョンかもしれませんが、私の環境下ではこのような結果になりました。

結論:
計算結果は、一度変数に格納してから、出力するといい。

もしかすると、特定の環境下という条件かもしれません。

詳しい情報お持ちの方は、ご教授下さい。


【WEB開発】カテゴリ:


【WEB開発】トラックバック(0)

【WEB開発】このブログ記事を参照しているブログ一覧: 四則演算は必ず変数に格納するべき?

【WEB開発】このブログ記事に対するトラックバックURL: http://web.creator-world.net/MT/mt-tb.cgi/117



【WEB開発】コメントする



カスタム検索

ioPLAZA【アイ・オー・データ直販サイト】 ioPLAZA【アイ・オー・データ直販サイト】
あれもこれも標準装備のレンタルサーバ あれもこれも標準装備のレンタルサーバ


Web広告限定ストア(eクーポン)Web広告限定ストア(eクーポン)

問い合わせ

メールフォーム