「3.9+5.1=9.0」は間違い?Ruby先生に聞いてみる
どうも、パイソンです。
さて今日は少し前にネットで話題になってた問題と取り上げて見ようかと思います。
「3.9+5.1=9.0」は間違い?
ネットの話題というのは流行るのも廃るのも早いので、もうかなり昔の話題だという印象をもってましたが半年ぐらい前に結構盛り上がってた様ですね。要は小学校の算数のテストで 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先生の場合はこうはならんだろーなー。。(ー'`ー;)