2011年4月26日火曜日

RUby言語 数値

*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で明示的に型変換もできます。

0 件のコメント:

コメントを投稿