3テラバイト

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

C#

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

投稿日:

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

ToString()を使用して文字列に変換する

ToString()関数を呼び出すとstring型で値が返ってくるため、上位の桁から順に配列に格納されます。

以下の例では千の位の値を取りたい場合はstr[1]にアクセスするとchar型で2が取得できます。

マイナスの値の場合は先頭のstr[0]に「-」が入ります。

int num = 12345;
string str = num.ToString();

除算と剰余演算を用いる

以下の処理を各桁の値が求められるまで繰り返す方法で、各桁の値を求めることもできます。
こちらの方法の方が前述のToString()を用いる方法よりも高速です。

  1. 10で割った余りで一番下位の位の値を求める
  2. 10で割って既に値を求めた位の値をカット

以下の例ではGetNthDigitNum関数の第一引数に元となる数値を、第二引数に下位から数えた取得する桁数を指定すると、その桁の値が返ってきます。

指定した桁数が元の数値の桁数より大きい場合は0が返ります。

int GetNthDigitNum(int num, int digit)
{
	int currentDigitNum = 1;
	num = System.Math.Abs(num);
	while (num > 0)
	{
		if (currentDigitNum == digit) return num % 10;
		num /= 10;
		currentDigitNum++;
	}
	return 0;
}

リンク

Reference Source
https://referencesource.microsoft.com/#mscorlib/system/int32.cs,a779f63c06961b65,references

-C#


comment

メールアドレスが公開されることはありません。

関連記事

no image

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

こんにちは、今日はC#で整数の桁数を取得する方法についてまとめていきます。 ToString()を用いる ToString関数でstring型に変換、Lengthで要素数から桁数を求めます。 int …

no image

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

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

no image

C#で文字のASCIIコードを取得する方法

こんにちは、今日はC#で文字のASCIIコードを取得する方法についてまとめていきます。 文字のASCIIコードを取得する 文字型の変数を整数型の変数に格納するとその文字の文字コードが格納されます。 以 …

no image

C#で文字列型と数値型を変換する方法

こんにちは、今日はC#で文字列型と数値型を変換する方法についてまとめていきます。 文字列から数値型に変換 int.TryParse関数の第一引数に変換する文字列を、第二引数に変換後の数値を受け取る数値 …

no image

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

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