こんにちは、今日はC#で整数の桁数を取得する方法についてまとめていきます。
Table of Contents
ToString()を用いる
ToString関数でstring型に変換、Lengthで要素数から桁数を求めます。
int GetDigit(int num)
{
num = System.Math.Abs(num);
int digit = num.ToString().Length;
return digit;
}
除算を用いる
10で除算した回数から桁数を求めます。
int GetDigit(int num)
{
int digit = 1;
num = System.Math.Abs(num);
while (num >= 10)
{
num /= 10;
digit++;
}
return digit;
}
System.Math.Log10を用いる
以下の例ではGetDigit関数の引数に桁数を取得したい数値を渡すことにより、その桁数を返します。
Log10関数で渡した値の底10の対数を取得しint型にキャスト、1を加算した値を返しています。
指定した値が0の場合のみ固定で1を返します。
int GetDigit(int num)
{
num = System.Math.Abs(num);
return (num == 0) ? 1 : ((int)System.Math.Log10(num) + 1);
}
リンク
Math.Log10(Double) メソッド (System) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/api/system.math.log10?view=net-5.0
Math.Abs メソッド (System) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/api/system.math.abs?view=net-5.0