Warum macht round()
einen besseren Job als die printf
Art der String-Formatierung?Warum macht Ruby 14.5.round() einen besseren Job (gibt 15) als "% .0f"% 14.5 (gibt 14)
ruby-1.9.2-p0 > "%.0f" % 14.5
=> "14"
ruby-1.9.2-p0 > "%.0f" % 14.5000001
=> "15"
ruby-1.9.2-p0 > 14.5.round
=> 15
Eeemmmm ... weil ... weil. http://en.wikipedia.org/wiki/Printf und http://en.wikipedia.org/wiki/Rounding#Rounding_to_integer - viele Dinge zu lesen. – Nakilon
Entspricht [dieser Frage] (http://stackoverflow.com/questions/588004/is-javascripts-math-broken), obwohl es in einer anderen Sprache ist. –
@Andrew Grimm Es ist nicht äquivalent, weil es versucht, den Unterschied zwischen "% .0f"% 14.5 "und" 14.5.round.to_s "(zB was sind die spezifischen Nuance-Regeln von% f?) –