タグ

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

  • round関数その8:RubyとPythonのround関数は奇妙じゃないんですか? - hnwの日記

    さて、今回はRubyPythonの題名をつけてしまいましたけど、それらの言語だけに限らないような話題です*1。早速ですが、FreeBSD環境を用意してください(おそらくSPARC Solaris環境やMac OS X環境でも同じ結果だろうと思いますが、僕は確認していません)。 $ ruby -e 'x=0.49999999999999994; printf("%.19f\n%.19f\n", x, x.round());' 0.4999999999999999445 1.0000000000000000000 $ python -c 'x=0.49999999999999994; print "%.19f\n%.19f" % (x, round(x))' 0.4999999999999999445 1.0000000000000000000どう見ても0.5未満の数を四捨五入して1になって

    round関数その8:RubyとPythonのround関数は奇妙じゃないんですか? - hnwの日記
    minodisk
    minodisk 2016/07/04
    PHPだけじゃない
  • PHPのround関数とは一体なんだったのか - hnwの日記

    (7/3 14:05追記)Javaに関する記述について誤認があったので盛大に書き換えました。Java 6、Java 7、Java 8それぞれで実装が変わっていたようです。 (7/13 23:55追記)記事中ではroundを四捨五入と言い切ってしまっています。これは筆者がC99のroundを基準に考えているためですが、言語によっては偶数丸めになっているround関数も珍しくありません。ご注意ください。 PHPのround関数について、ネット上で次のような記述を見つけました。 PHP 四捨五入の計算を間違える唯一の言語として畏れられていましたが、そのバグは治っているかもしれません(治ってないかもしれません) 主要なプログラミング言語8種をぐったり解説 - 鍋あり谷あり 各言語を面白おかしく紹介する内容とはいえ、ずいぶん雑な理解だなーという印象です。ゆるふわな話だけでPHPがdisられ続けるの

    PHPのround関数とは一体なんだったのか - hnwの日記
    minodisk
    minodisk 2016/07/04
  • 1