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 回答