RubyGold試験の勉強の時に作成した自習問題
・過去に作成したものなのでコードの説明はありません(出来ない…)。
・実行結果をコメントとして記述しています(コード #=> 結果)。
・右往左往しているのでコードにもコメント化している箇所があります。

→ 「他の問題


#! ruby -Ks

#------------------------------------------------------------
# GoldOther002_2.rb
# ■結果が 0.9999999999999999 になって ==1 にならない
#------------------------------------------------------------


#--------------------------------------------------
# Define
#------------------------------
num1 = 0
num2 = 0
num3 = 0.0
num4 = 0.0
10.times do
  num1 = num1 + 1
  num2 = num2 + 0.1
  num3 = num3 + 1.0
  num4 = num4 + 0.1
end

#--------------------------------------------------
# Execute
#------------------------------
puts num1        #=> 10
puts num1 == 10  #=> true

puts num2        #=> 0.9999999999999999
puts num2 == 1   #=> false

puts num3        #=> 10.0
puts num3 == 10  #=> true

puts num4        #=> 0.9999999999999999
puts num4 == 1   #=> false

puts "----------"
puts num1 == 10.0  #=> true
puts num1 === 10    #=> true
puts num1 === 10.0  #=> true
puts num1.eql?(10)    #=> true
puts num1.eql?(10.0)  #=> false
puts num1.equal?(10)    #=> true
puts num1.equal?(10.0)  #=> false

#------------------------------------------------------------
# END
#------------------------------------------------------------