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

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

「3.9+5.1=9.0」は間違い?Ruby先生に聞いてみる

どうも、パイソンです。


さて今日は少し前にネットで話題になってた問題と取り上げて見ようかと思います。

「3.9+5.1=9.0」は間違い?


lineblog.me

ネットの話題というのは流行るのも廃るのも早いので、もうかなり昔の話題だという印象をもってましたが半年ぐらい前に結構盛り上がってた様ですね。要は小学校の算数のテストで 3.9 + 5.1 の答えを「9.0」と書いたところ先生から減点されたという話です。

ネットでの論調では「9.0で減点はおかしい!」という内容が多かったような印象があります。

まあ、仮に自分が小学校時代にこんな減点喰らったら絶対納得いってないでしょう。

Rubyくんはどう答える?

で、この問題。「小数の足し算」というのは単純そうに見えて、実はプログラマにとって結構な落とし穴が潜んでたりする内容でもあります。そこで今回ブログネタがてらRubyくんにこの数式を解いてもらうことにしました!

プログラム

answer = 3.9 + 5.1
puts answer

実行結果(version 2.2.3p173)

9.0


おー!なんと件の小学生と同じ答えを返してきた!!Σ( ̄□ ̄

Ruby先生の採点結果

じゃ、今度は出した答えをどうRuby先生が評価するかを実験。

answer = 3.9 + 5.1
puts answer

if answer == 9.0 then
  puts "答え9.0はマルです。"
else 
  puts "答え9.0はバツです!!" 
end

if answer == 9 then
  puts "答えは9なのでマルです。"
else 
  puts "答えは9じゃないのでバツです!!" 
end

実行結果(version 2.2.3p173)

9.0
答え9.0はマルです。
答えは9なのでマルです。


Ruby先生:「9でも9.0でも、どっちでもええやん!」


結論:ruby先生は優しい!ヽ(´∀`*)ノ

余談

C先生やJava先生の場合はこうはならんだろーなー。。(ー'`ー;)