Ich lerne Ruby on Rails for Africa

Railsとアフリカで苦戦するブログ

rubyで簡単に数字の桁数をカウントする方法

友人と話していて、非プログラマ視点から
今までの常識が崩されたので、メモ。

自「100が3桁ってなんで分かると思う?」

友「数字が3つあるから」

自「(こいつ、分かってねーな)」

と思っていたが、考えてみると非常に本質的だった。

通常、数字の桁数をカウントする時には、
10で割って、その回数をカウントすることが
ベストプラクティスか何かと思っていたけど、
それも数字がいくつあるかというのを10進法の上で考えいただけ。

もっと簡単なのは、int型のものをstring型に変換して
そこに何文字あるか数えれば良かった。

つまり、rubyで書くと以下のようになる。

s = 100

def count_digit num
  num.to_s.length
end

pp count_digit s # => 3

プログラマ視点も大事にしよ。