Asa Tech Blog

学んだことを備忘録として残しています

チェリー本2章②

丸め誤差初めて知った!

  • 整数同士の割り算は整数になる

  • to_fで整数を小数にできる

  • 丸め誤差:コンピュータが10進数ではなく2進数で計算しているため起こる誤差

0.1 * 3  #=> 0.30000000000000004

0.1 * 3 == 0.3  #=>false
  • rational(有理数)クラスを使うと、期待通りの結果が出せる

  • 有理数とは、a/b という分数で表せる数のこと

0.1r * 3r #=> 3/10

0.1r * 3r == 0.3 #=>true
  • rationalizeメソッドでRationalクラスの数値に変換できる
a = 0.1
b = 3

p a.rationalize * b.rationalize #=> 3/10