アマグラミング

プログラミング初心者が勉強したことを復習とメモがてら書いているだけです。

(60)小数点の計算をメソッドによって変える

以前にも触れましたが、もう一度勉強しましょう。

 

Floatクラスの数値をIntegerクラスに変換した場合、小数点以下は切り捨てられました。

しかし、四捨五入したかったり、切り上げしたいときもあるでしょう。

 

豆知識ですが、例えば消費税って会計の時小数点はどうなっていると思います?

正解は

切り捨てでも切り上げでも四捨五入でも、そこらへんは自由だそうです。

 

まあそれはそれとして勉強していきましょう。

 

.roundメソッドなら四捨五入。

 

.ceilメソッドなら切り上げです。1.1だろうが2にします。

 

.floorメソッドなら切り捨て。1.9でもね。

to_iもそうだけど.floorメソッドの場合はクラスの変換をしないんじゃないかな。

ちょっとどうなっているのか見てみる。

 

f:id:tiroru17:20170621081602p:plain

 

これを実行すると

f:id:tiroru17:20170621081631p:plain

ふーんなるほど。

じゃあ

p a.floor.class

ってやったらどこのクラスなのかなあと思って実行すると

実行結果は Fixnum って出た。ふーん。

FixnumはIntegerクラスの子クラスだからクラスもやっぱ変換されているのか。

 

じゃあto_iでもいいんじゃないかな・・・?