*Rubyは多倍長整数をサポートをし、桁あふれを心配することはありません。
*メソッドのオーバードができます。メソッドのバリエーションが作れます。
■数値リテラル
整数・浮動小数点があります。
1や0.01など
■リテラルの先頭記号
0x は 16進数
0d は 10進数
0o は 8進数
0b は 2進数
■整数オブジェクト
整数オブジェクトはintegerではなくFixnumやBignumクラスのインスタンスになります。
*ソース
p num = 0b1111.class
p num = 0b1111111111111111.class
*結果
Fixnum
Bignum
■その他演算子
p "############Ruby数値演算子##############"
p 10 + 2 #加算
p 5.25 -7 #減算
p 2*2 #乗算
p 2**5 #べき乗
p "############除算##########"
p 7/2
p 7%2
p 7.0/2
p 7.0/0
#p 7/0 #ゼロ除算例外
p -a = -3.0 #符号操作
p +a = -3.0
■型と自動変換
Rubyはデータ型が自動変換されることはほとんどありません。
p 5 + "2".to_i など明示的に型変換しないかぎり、
p 2/0.5 などの時は整数が不動小数点に変換され計算されます。
p printf("%20f", 99999999999999999999999999 + 0.0) などの時は100000000000000004764729344.000000nilとなり整数の表現可能範囲をこえた場合は精度が失われます。
また、
p 3.to_f / 2
p 3.0.to_i / 2で明示的に型変換もできます。
*メソッドのオーバードができます。メソッドのバリエーションが作れます。
■数値リテラル
整数・浮動小数点があります。
1や0.01など
■リテラルの先頭記号
0x は 16進数
0d は 10進数
0o は 8進数
0b は 2進数
■整数オブジェクト
整数オブジェクトはintegerではなくFixnumやBignumクラスのインスタンスになります。
*ソース
p num = 0b1111.class
p num = 0b1111111111111111.class
*結果
Fixnum
Bignum
■その他演算子
p "############Ruby数値演算子##############"
p 10 + 2 #加算
p 5.25 -7 #減算
p 2*2 #乗算
p 2**5 #べき乗
p "############除算##########"
p 7/2
p 7%2
p 7.0/2
p 7.0/0
#p 7/0 #ゼロ除算例外
p -a = -3.0 #符号操作
p +a = -3.0
■型と自動変換
Rubyはデータ型が自動変換されることはほとんどありません。
p 5 + "2".to_i など明示的に型変換しないかぎり、
p 2/0.5 などの時は整数が不動小数点に変換され計算されます。
p printf("%20f", 99999999999999999999999999 + 0.0) などの時は100000000000000004764729344.000000nilとなり整数の表現可能範囲をこえた場合は精度が失われます。
また、
p 3.to_f / 2
p 3.0.to_i / 2で明示的に型変換もできます。
0 件のコメント:
コメントを投稿