よく見かけるFixNumの例
randarr=(1..10).map {|i| rand(100)} #=> [58, 92, 83, 58, 29, 62, 4, 4, 40, 81] randarr.map{|i| i.ceil } #=> [60, 100, 90, 60, 30, 70, 10, 10, 40, 90] randarr.map{|i| i.floor } #=> [50, 90, 80, 50, 20, 60, 0, 0, 40, 80] randarr.map{|i| i.round } #=> [60, 90, 80, 60, 30, 60, 0, 0, 40, 80]
昔見かけたなぜかto_fをしている例。
randarr=(1..10).map {|i| rand(100)} #=> [58, 92, 83, 58, 29, 62, 4, 4, 40, 81] randarr.map{|i|(i.to_f/10).ceil*10} #=> [60, 100, 90, 60, 30, 70, 10, 10, 40, 90] randarr.map{|i|(i.to_f/10).floor*10} #=> [50, 90, 80, 50, 20, 60, 0, 0, 40, 80] randarr.map{|i|(i.to_f/10).round*10} #=> [60, 90, 80, 60, 30, 60, 0, 0, 40, 80]
いちいち.floorしてるのは無駄だろう?
randarr=(1..10).map {|i| rand(100)} #=> [58, 92, 83, 58, 29, 62, 4, 4, 40, 81] randarr.map{|i| i-i%10 } #=> [50, 90, 80, 50, 20, 60, 0, 0, 40, 80] randarr.map{|i| i-i%10+10 } #=> [60, 100, 90, 60, 30, 70, 10, 10, 50, 90] randarr.map{|i|i+5 }.map{|i| i-i%10 }#=> [60, 90, 80, 60, 30, 60, 0, 0, 40, 80]
何事も、工夫次第。
四捨五入・切り捨て・切り上げは10単位。
だけれど、ページャを作るとしたら8個単位。5個単位・・・など区切る数字は不定だ。
5個ごとに合わせる
randarr.map{|i| i-i%5 } #=> [55, 90, 80, 55, 25, 60, 0, 0, 40, 80] randarr.map{|i| i-i%5+5 } #=> [60, 95, 85, 60, 30, 65, 5, 5, 45, 85] randarr.map{|i|i+3 }.map{|i| i-i%5 }#=> [60, 95, 85, 60, 30, 65, 5, 5, 40, 80] randarr.map{|i|i+2 }.map{|i| i-i%5 }#=> [60, 90, 85, 60, 30, 60, 5, 5, 40, 80]
20個ごとに区切る?
randarr=(1..10).map {|i| rand(100)} #=> [58, 92, 83, 58, 29, 62, 4, 4, 40, 81] randarr.map{|i| i-i%20 } #=> [40, 80, 80, 40, 20, 60, 0, 0, 40, 80] randarr.map{|i| i-i%20+20 } #=> [60, 100, 100, 60, 40, 80, 20, 20, 60, 100]
こういうのをさっと計算できると、ページャとか数字に強いよね。