或るプログラマの開発日記

日々の勉強したことの備忘録なんかに使っていきます

Rubyで小数の割り算を試してみる

どうも、パイソンです。

今回は、勉強がてらRubyの小数の割り算について少しどのような仕様なのかというのを実験しましたので、ここにメモしておきます。

Rubyでの小数割り算

まずは、各項の型で挙動が変わるかの確認。

プログラム

puts 10 / 3
puts 10.0 / 3
puts 10 / 3.0
puts 10.0 / 3.0

実行結果

3
3.3333333333333335
3.3333333333333335
3.3333333333333335

で、整数割る整数は端数が切り捨てられた整数で答えが返ってくる模様。

そして、小数が絡むと小数が返ってくるのは想定通りでしたが、よく見ると10.0/3.0で答えは、3.3333333333333335となんとも奇怪なものに?

調べてみた結果

stackoverflow.com

この結果もやはり浮動小数点にまつわる問題が誤差の原因。

因みに、Javaでも同様の確認をしてみたところ、

プログラム

public class Main {
	public static void main(String[] args){
		System.out.println(10.0 / 3.0);
	}
}

実行結果

3.3333333333333335

と相成りました。

雑感

お手軽にRuby勉強してみるつもりが、何故か今や浮動小数点演算の復習になっとる。。(*_*)