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#で数値を累乗した値を取得する

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

no image

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

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

no image

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

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

no image

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

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

no image

C#例外処理の使い方

例外処理 数値文字列を数値に変換するint.Parseメソッドを例に例外処理を行うと、以下のようになります。try-catchステートメントを使用し、tryブロックに例外を捕捉したいコードを記述すると …