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
非プログラマ視点も大事にしよ。