表題の通り、
3桁の整数から百の位・十の位・一の位の数字を取り出す方法のアウトプットです。
百の位
整数を100で割ったものを、更に10で割った計算結果の余りが百の位。
num = 345
result_100 = (num / 100) % 10
puts result_100
# => 3
普通に(num / 100)をすると3.45になるけれども、
Rubyの場合は、整数 / 整数 = 整数(小数点以下切り捨て)になるので
(num / 100)は3になる。
十の位
整数を10で割ったものを、更に10で割った計算結果の余りが十の位。
num = 345
result_10 = (num / 10) % 10
puts result_10
# => 4
(num / 10)が34で、34を10で割ると余りが4。
一の位
整数を10で割った計算結果の余りが一の位。
num = 345
result_1 = num % 10
puts result_1
# => 5
おまけ
もし4桁の数字で千の位の数字を取り出したいときは
(num / 1000) % 10
となる。百の位、十の位、一の位は上記と同じ求め方。
digitsメソッド (2020/10/20追記)
コメントにて、とても便利なメソッドを教えて頂いたので追記します。
digits
メソッドです。これを使うと下記のようになります。
num = 345
puts num.digits
# => [5, 4, 3]
このように配列で返してくれます。便利。
ちなみに、元になる数字(上記でいうと345)は非負整数、つまり0か正の整数でないとエラーになってしまうとのこと。
digitsメソッドを調べるにあたり、こちらも参考にさせて頂きました。
https://docs.ruby-lang.org/ja/latest/method/Integer/i/digits.html