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#で文字列をバイトシーケンスに変換する方法についてまとめていきます。 文字列をバイトシーケンスに変換 string str = "テスト"; System.Te …

no image

C#例外処理の使い方

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

no image

C#で0埋めする方法

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

no image

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

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

no image

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

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