skillup

技術ブログ

PHP

PHPでの切り上げ誤差問題

投稿日:2015年12月24日 更新日:

PHPを初めて、4年近くたちますがいまだに知らんことが多いですね(爆)

本日は、

になるという非常にビックリな仕様に遭遇・・・

なにやら結構有名な仕様のようでどうやら2進数と10進数の変換でおこる誤差のようです。

そういやJavaでも似たような処理がありましたね。

私の場合気持ち悪いですが、割った数字をStringにキャスト変換して対応してしましました。

上記の例でいうと、下記のようなコードになります。

そういや昔ECCUBEの中身を見たときの切り上げ、切捨て、四捨五入の処理はceilなどをそのまま使わずに+1したりとかをしてましたね・・・

参考リンク

[php]ceilによる切上げ処理が微妙な感じになる

-PHP

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

php5.6のインストール+cake3でのbake

cake3を動かしたい場合、PHP5.4以上でないと動きません。 2016年1月現在、CentOS6でyumでPHPをインストールする場合、php5.3ですので、5.4以上を入れる場合、別のリポジトリ …

no image

拡張子の取得

PHPで配列を取得する場合、下記のメソッドで一気に取得できます。 pathinfo( ファイルパス,PATHINFO_EXTENSION ) いままで正規表現使ったり、explodeでやったりといろん …

no image

CakePHP3 リクエストパラメーターの扱いについて

CakePHPのリクエストの扱いについて。 ほとんどのフレームワークですと、HTTPリクエストの扱いに関してはフレームワーク側で実装されていることが多いので、フレームワークを使い始める場合、この部分に …

no image

Traitによるコードの再利用

PHPでは多重継承が禁じられて(親は1つしかもてない)いるため、共通性のあるコードを書こうと思った時に親にかいていない場合限界があります。 そんな時に使えるのがTraitという考え方で、これを使います …

no image

ECCUBE3ディレクトリ構成

ECCUBE3のディレクトリ構造に関して。 自分用 自分用メモです。 設定情報 /app/config/eccube 定数 /src/Eccube/Common/Constant ログ /app/lo …

アーカイブ