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.Format関数を用います。 通常は第一引数に”{0}”を指定することで …

no image

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

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

no image

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

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

no image

C#でDictionaryで定義したクエリパラメータをURL文字列に連結する

以下のようにURL文字列を定義している時 string url = "https://santerabyte.com"; Dictionaryでクエリパラメータのキーと値を定義し、 …

no image

C#で0埋めする方法

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