Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なぜfloatで丸め誤差が生じるのか ~decimalとの違いを理解しよう~

Haruki Yoshida
September 08, 2023

なぜfloatで丸め誤差が生じるのか ~decimalとの違いを理解しよう~

float型で誤差が生じる理由を2進数と小数の観点から解説しています。

Haruki Yoshida

September 08, 2023
Tweet

More Decks by Haruki Yoshida

Other Decks in Technology

Transcript

  1. の値 符号部 指数部 仮数部 float 型の仕組み double 型(64 ビット) 実はRuby

    のFloat クラスはこっち 符号部(1 ビット) 指数部(11 ビット) 仮数部(52 ビット)
  2. の値 符号部 指数部 仮数部 3 decimal 型の仕組み 整数 整数では誤差が生じないため、 decimal

    型では丸め誤差は生じない 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 ※ 空白部は0 123 ex)