タグ

浮動小数に関するmohnoのブックマーク (3)

  • [0.0, 1.0) の乱数を得るための“本当の”方法

    レイトレ合宿9(*)のセミナー発表スライドです。 * https://sites.google.com/view/rtcamp9/home - 2023/09/08 “除算法2”追記。(@Reputelessさんありがとうございました)

    [0.0, 1.0) の乱数を得るための“本当の”方法
    mohno
    mohno 2023/09/04
    うわっ、めんどくさ。floatなんか使うな……とはいかないのかな、SIMDとかあるし。(現実に困ったんだろうけど)1.0が出てきて困るなら捨てる、で終わらせそう。
  • 0.1は浮動小数点数で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita

    当たり前のことに感じますが、0.1は浮動小数点数(IEEE 754)では正確に表現できません。 なのにprintをしたときに0.1と表示されるのは不思議です。 このことについて分かったことを書いておきます。 環境 この記事ではPython 3.7を使用しています。 【前提】浮動小数点数 この記事で、以降"浮動小数点数"という場合は、"IEEE 754 倍精度"のことを指します。 浮動小数点数のフォーマットは、数を以下の形式に変換し、sign、exp、fracを順に並べたものです。

    0.1は浮動小数点数で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita
    mohno
    mohno 2020/01/22
    「Python 3.1 からは、ほとんどの場面で 0.1 のような最も短い桁数の10進数の値を選ぶ」←そうなのか。「Python以外の言語」←C/C++は決められた有効桁数で表示してるだけだぞ。リンク先のツールは興味深い。
  • ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記

    ECMAScriptの浮動小数点数の丸め関数である Number.prototype.toFixed() について調べてみたところ、浮動小数点数をわかっている人が作った硬派な仕様だと感じたので、解説してみます。 浮動小数点数の丸めの善し悪しについて 私はプログラミング言語の浮動小数点数の丸め処理に興味があり、過去に関連記事を30以上書いています。こうした活動から得られた知見として、良い丸め関数には次のような性質があると考えています。 仕様がシンプルで直感的であること 仕様が抜け漏れなく文書化されていること バグを作り込みにくい仕様であること どれも良い関数の一般論のような話ですが、丸め処理に限って言えば簡単な話ではありません。そもそも浮動小数点数の性質が人の直感に反するため利用者にとっても実装者にとっても罠が多く、結果として上の条件を満たせないことが多いのです(私が面白いと感じるポイント

    ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記
    mohno
    mohno 2019/02/27
    「(1.23456).toFixed(4)」←この時点で「1.23456」を“文字列のまま”評価しろってことなのかな?しかし、演算でBCD使わないのなら、あまり実用的な意味はないと思うんだが。(“定数”を四捨五入してもしょうがないよね?)
  • 1