タグ

ブックマーク / hnw.hatenablog.com (2)

  • PHP以外全員不正解 - hnwの日記

    いまだにround関数のまとめは出来ていません。そろそろ皆様に忘れられる前にまとめなきゃな、とは思っていますが、もうしばらくお待ちください。今回は微妙にround関数と近いような遠いような話題です。 巨大な数の丸めについて実験しているうちに、PHPだけ正解でPerlRubyPythonが不正解と思われる例を見つけました。普段の叩かれっぷりを考えるとPHPだけ正解なんて状態は有り得ない気がするのですが、僕には他の結論が導けませんでした。識者の皆様に「ダウト!」と指摘して頂ければ幸いです。 今回は、2の65乗のことを265と表現することにします*1。 265=36893488147419103232の次に大きいIEEE64bit浮動小数点数は265+213=36893488147419111424です。仮に、265+212+1=36893488147419107329を浮動小数点数に丸める

    PHP以外全員不正解 - hnwの日記
    odz
    odz 2007/07/30
  • hnwの日記 - PHPの奇妙なround関数

    (2012/11/01追記) 4年ほど前の記事「PHP5.3.0alpha3のround関数の実装がPHP5.2.6と変わった - hnwの日記」でお伝えした通り、PHP 5.3.0から別の実装が採用されており、ページで指摘しているような挙動のPHPは既に絶滅危惧種です。念のため。 さて、プログラミングの話題もたまには書いてみます。今回はPHPのround関数の挙動が変だ!という話題です。 round()は浮動小数点数を四捨五入する関数で、大抵の言語に同じ名前で実装されているかと思います。ではPHPのround関数の何が問題なのか、ちょっと試してみましょう。 $ uname -sro Linux 2.6.9-42.0.10.plus.c4smp GNU/Linux $ php --version PHP 5.1.6 (cli) (built: Feb 23 2007 06:56:38)

    hnwの日記 - PHPの奇妙なround関数
    odz
    odz 2007/05/27
  • 1