skillup

技術ブログ

PHP

PHPでの切り上げ誤差問題

投稿日:

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

本日は、

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

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

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

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

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

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

参考リンク

http://webpaprika.com/1634.html

-PHP

執筆者:


comment

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

関連記事

no image

CakePHP3でのコレクションに関して

プログラミングにおいて基礎となるのは配列、ハッシュの処理とオブジェクト指向の使いこなしです。 配列、ハッシュの処理に関しては自前でメソッドを書いてもよいですが、バグの温床になりやすいので、ライブラリを …

no image

拡張子の取得

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

no image

PHPエルビス演算子

PHP エルビス演算子について えープログラムでよくあるnullかどうかをチェックしてnullじゃなければその値を使い、そうじゃなければディフォ値を使うみたいな処理 例えばPOSTを受けてそれを変数で …

no image

cakePHPでのCSVダウンロード

cakePHPにてCSVのダウンロードなんぞを。 以前このエントリーでCSVダウンロードに関しては取り扱ったのですが、 ボタンを押す ファイルダイアログが開く パスを選ぶ 意図したデータを正常にダウン …

no image

Laravelでのテスト

Laravelを使ってUnitTestをする場合の注意点など。 Contents1 事前準備2 テストデータ作成機能3 実際のテストコード 事前準備 まずはアプリのディレクトリにあるphpunit.x …