数字の桁数を求める関数
前回のネタを作成中に、数字の桁数を求めたい場面があった。しかし、桁数を直接求める関数は無いようだ。そこで、手っ取り早く作ることにした。
先ず大前提として、ここでは有効数字の桁数は扱わないことにする。色々と複雑だから。
有効数字 - Wikipedia
それだけなら、数字の文字数を数えれば手っ取り早い。
ただしこれだと、小数点を含む場合は正しい答えが返ってこない。
そこで、こんなものを作ってみた。
Function DigitNumber(num As Double) As Long Dim i As Long: i = 10 Dim j As Long: j = 1 Do If num / i < 1 Then DigitNumber = j Exit Function Else i = i * 10 j = j + 1 End If Loop End Function
作りは至って単純で、10で割って1を下回るようなら、そこが最大桁と判断させている。こんな感じだ。
ここまでなら、Round関数で丸めれば良いのでは?というご意見もあると思う。
まさにその通りで、ここから先の話から見れば、別にどちらでも構わないお話。
ただ、今日の題名は「数字の桁数を求める関数」としてしまったので、今回は
ここまでとする。
この先何をやりたかったかについては、明日に続きます。
参考まで。