Rubyで数値(Numeric)を扱う。位(くらい)を指定して四捨五入など


スポンサーリンク

Rubyで数値を操作するサンプルをまとめて載せてみます。

●目次


数値が0かどうかを確認する

puts 0.zero? #true
puts 4.zero? #false
puts 0.nonzero? #nil
puts 4.nonzero? #4 


四捨五入(丸め操作)

Rubyの数値の丸め操作のメソッドは以下のようなものがあります。

メソッド名 戻り値
round 四捨五入する
floor 自身と等しいか、自身より大きい整数のうち最小のものを返す自身より小さい整数のうち最小のものを返す
ceil 自身と等しいか、自身より大きい整数のうち最小のものを返す
truncate 自身と0の間で、自身に最も近い整数を返す

roundの引数を指定することで、小数点第X位で四捨五入することができます。
逆に、10の位(2桁目)で四捨五入したいときは、round(-2)と指定します。

# encoding:utf-8

puts 1.6.round  #2
puts 1.4.round  #1

puts 150.round(-2) #200
puts 1500.round(-2) #1500
puts 1500.round(-3) #2000

puts -1.5.round #-2

puts 56.5.ceil #57
puts 56.5.floor  #56

puts 22.2.truncate #22
puts -1.5.truncate #-1


偶数か奇数かを調べる

#奇数か調べる
puts 6.odd? #false
puts 5.odd? #true

#偶数か調べる
puts 6.even? #true
puts 5.even? #false


整数を文字列に変換する

#10進数
puts 30.to_s #30

#2進数
puts 30.to_s(2) #11110

#8進数
puts 30.to_s(8) #36


文字列を整数に変換する

puts '222'.to_i #222

x = '75'.to_i + '75'.to_i
puts x #150


ある整数からある整数まで繰り返す

#1,2,3,4,5,6,7,8,9,10,
puts "上がっていく"
1.upto 10 do |num|
  print num
  print ","
end

puts "\n下がっていく"

#10,9,8,7,6,5,4,3,2,1,
10.downto 1 do |num|
  print num
  print ","
end
puts "順番に"
#1,2,3,4,5,6,7,8,9,10,
1.step 10 do |num|
  print num
  print ","
end

puts "\n2つおきに"
#0,2,4,6,8,10
0.step 10,2 do |num|
  print num
  print ","
end


分数を表現する

bunsu = Rational(1,5)
puts bunsu #1/5

#分母
puts bunsu.denominator #5

#分子
puts bunsu.numerator #1


<参考文献>
パーフェクトRuby (PERFECT SERIES 6)