0

整数を入力し、C# で基数 10 の数字を関数に返す方法を理解しようとしています。私は周りを調査しましたが、数式以外で動作する多くのコード例を見つけることができません.

ありがとう!

4

2 に答える 2

5

あなたがただ欲しいように聞こえます:

int value = 2590123;
string text = value.ToString();

それは自動的にベース10を使用します...少なくとも私が知っているすべての文化で。本当に確認したい場合は、インバリアント カルチャを使用します。

string text = value.ToString(CultureInfo.InvariantCulture);

基数の概念は、文字列表現など、何らかの形式の個別の「数字」を持つ表現について話す場合にのみ意味があることに注意してください。純粋なには底がありません。16 個のリンゴがある場合、それは 0x10 個のリンゴがある場合と同じ数です。

編集:または、数字のシーケンスを整数として返すメソッドを書きたい場合は、最下位から順に:

// Note that this won't give pleasant results for negative input
static IEnumerable<int> GetDigits(int input)
{
    // Special case...
    if (input == 0)
    {
        yield return 0;
        yield break;
    }
    while (input != 0)
    {
        yield return input % 10;
        input = input / 10;
    }
}
于 2013-03-22T18:52:40.303 に答える
0

多くの仮定を立てると、次のようなものが必要になると思います。

// All ints are "base 10"
var thisIsAlreadyBase10 = 10;
Console.WriteLine("The number {0} in base 10 is {0}", thisIsAlreadyBase10);

// However, if you have a string with a non-base 10 number...
var thisHoweverIsAStringInHex = "deadbeef";
Console.WriteLine(
    "The hex string {0} == base 10 int value {1}", 
    thisHoweverIsAStringInHex, 
    Convert.ToInt32(thisHoweverIsAStringInHex, 16));
于 2013-03-22T18:55:03.757 に答える