3テラバイト

プログラム関連備忘録サイト。主にゲーム。

C#

C#で整数の桁数を取得する

投稿日:

こんにちは、今日はC#で整数の桁数を取得する方法についてまとめていきます。

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

-C#


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

C#で指定シンボルが定義されている場合のみ関数を実行する属性ConditionalAttribute

#define IS_DEBUG using System; using System.Diagnostics; [Conditional("IS_DEBUG")] pub …

no image

C#で0埋めする方法

こんにちは、今日はC#で0埋めする方法についてまとめていきます。 0埋め 文字列の書式指定を用いて、数値の0埋めをすることができます。 ToString 以下の例ではint型のToString関数の引 …

no image

C#で文字列を右詰め、左詰めする方法

こんにちは、今日はC#で文字列を右詰め、左詰めする方法についてまとめていきます。 右詰め string.Format関数を用います。 通常は第一引数に”{0}”を指定することで …

no image

C#で文字列型と列挙型の変換方法

こんにちは、今日はC#で文字列型と列挙型の変換方法についてまとめていきます。 文字列型から列挙型への変換方法 以下のような列挙型が定義されている場合 enum Animal { Cat, Dog } …

no image

C#で数値を累乗した値を取得する

System.Mathクラスに定義されている以下の関数Powを使用して、指定したい値を累乗した値を取得できます。 public static double Pow (double x, double …