タグ

round()の人に関するtsukimiyaのブックマーク (3)

  • PHPの新しいround関数にバグをみつけた - hnwの日記

    PHP 5.3.0以降、PHPのround関数の挙動はChristian Seilerさんが提案したRFCに従って一新されています。この新しいround関数の仕様上の問題もしくはバグを見つけました。 以前の記事「PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった」でこの新しい実装は「今までよりは良い実装」ではないかと書きましたが、撤回すべきかもしれません。ベースのアイデアとしては以前の記事にも書いた通り悪くないと思うのですが、考え漏れがあるような気がしています。 たとえば次のサンプルコードを見て下さい。 <?php ini_set("precision",19); var_dump(1000000000000000.125); var_dump(round(1000000000000000.125)); サンプルコード中の1000000000000000.125

    PHPの新しいround関数にバグをみつけた - hnwの日記
    tsukimiya
    tsukimiya 2011/04/07
    derickさん…
  • PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった - hnwの日記

    (2016/07/02 20:00追記)稿をさらに掘り下げた記事「PHPのround関数を読み解く (1)丸め桁数が大きすぎ・小さすぎる場合」「PHPの新しいround関数を読み解く (2)pre-roundingの意味」を書きました。合わせてご確認ください。 12月4日付でPHP5.2.7とPHP5.3.0alpha3が同時リリースされましたが、これに関連して毎度おなじみPHPのround関数の話題です。相変わらず記事は長いので簡単なまとめから。 PHP5.3.0alpha3ではこれまでのPHPのいずれとも違うround関数が実装されました。少々疑問は残るものの、比較的マシな実装だと僕は考えています。今回は0.50000000001のような不思議な数は含まれていませんし、問題が起こる例が以前より減ったように思います。 第3引数で丸め方式を選択できるようになりました。四捨五入(デフォルト

    PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった - hnwの日記
    tsukimiya
    tsukimiya 2008/12/08
    round魔王が現れた。良いまとめ。
  • PHPの==がキモい件 - hnwの日記

    どうやら僕はround()の人なんだそうです(参考資料)。それはそうとして、もう少し前までは==の人だった気がしますので、その頃の話題を再掲します。 僕は2年ほど前に「==がキモい件」などのタイトルで勉強会で発表していた頃がありました。PHPの==演算子の挙動について、啓蒙が必要だろうと考えていたためです。当時に比べれば最近はPHPの==演算子の不思議な挙動に関する記事を見る気がしますが、まだまだキモさの全容を把握している人は少ないような気もします。 PHPの==演算子の何がキモいのか、一言で言うと両辺の値の型をテキトーに合わせて比較する点です。言い換えると、「型はさておき、等しい値を意味しているようならtrue」という演算子です。 マニュアルの「PHP 型の比較表」の「==による緩やかな比較」を見てもキモさがチラホラ見えるんですが、今回は更に突っ込んだ比較表を作ってみました。 まずは以前

    PHPの==がキモい件 - hnwの日記
    tsukimiya
    tsukimiya 2008/06/06
    バグではなく、仕様です。そこの所注意な。
  • 1