ruby gold対策。
そういえば試験で、こんなのが出ました。
0.1を10回足した総和は1.0と等しいか?
>> sum=0;10.times.each{ |x| sum+=0.1 } => 10 >> sum == 1.0
答えはfalse(等しくない)なんですが、
>> sum == 1.0 => false >> sum => 0.9999999999999999
合格済みですが、メモしておきます。
gold対策(模擬試験16)。
DateTimeの演算結果のclassを問う問題です。
require 'Date' d1 = DateTime.new d2 = DateTime.new d3 = d2 - d1 # => (0/1) d3.class # => Rational
なんとRationalです。
分かりやすいようにDateTime#nowでやると下記のようになります。
d1 = DateTime.now d2 = DateTime.now d3 = d2 - d1 # => (7/43200000000) d3.class # => Rational
Dateも同様です。
d1 = Date.new d2 = Date.new d3 = d2 - d1 # => (0/1) d3.class # => Rational
ついでに、Timeでやると
t1 = Time.now t2 = Time.now t3 = t2 - t1 # => 4.0e-06 t3.class # => Float
これは、予想通りFloatです。
というかDateTime/Dateは完全に誤解していました。
どうして違うのでしょうか?
先週落ちた のですが、
なんとかリベンジできました。
本当になんとか合格でした。76/100 というギリギリ。
3、4問怪しい問題があったのですが、それでも合格してるだろうと踏んで完了ボタンを押したら
ギリギリでびっくりしました。
ちなみに先週1週間の対策は公式だけです。
Ruby公式資格教科書 Ruby技術者認定試験 Silver/Gold対応 (EXPERT EXPASS)