使用C#将数字拆分为数百个单位

时间:2014-10-14 13:42:56

标签: c# string string-split

在C#中将一些给定的较大数字分成数百,数十和单位的最佳方法是什么?

例如:如果输入数字43928,我如何在输出上获得40000 + 3000 + 900 + 20 + 8?

5 个答案:

答案 0 :(得分:10)

这样的事情:

long x = 43928;
long i = 10;

while (x > i / 10)
{
    Console.WriteLine(x % i - x % (i / 10));
    i *= 10;
}

它会给你输出

8
20
900
3000
40000

答案 1 :(得分:3)

您必须使用%运算符。例: 43928 / 10000 = 4; 43928 % 10000 = 3928; 3928 /1000 = 3; 3928 %1000 = 928, etc...

答案 2 :(得分:3)

Linq实施:

  String source = "43928";
  // "40000 + 30000 + 900 + 20 + 8"
  String result = String.Join(" + ", source
    .Select((item, index) => item.ToString().PadRight(source.Length - index, '0')));

答案 3 :(得分:1)

var x = "4328";
for (int i = 0; i < x.Length; ++i)
{
    var a = x.Substring(x.Length - i - 1, 1).PadRight(i+1, '0');
    Console.WriteLine(a);
}

如果需要数字,请使用int.Parse(a)

答案 4 :(得分:1)

解析的方式:

var myBigNumber = 43928.ToString();
var asCharachters = myBigNumber.ToArray();
for (var i = 0; i < asCharachters.Length; i++)
{
    var numberOfZeros = asCharachters.Length - i;
    var itemAsString = (asCharachters[i]).ToString().PadRight(numberOfZeros, '0');
    Console.WriteLine( Int32.Parse(itemAsString));
}

输出:

40000
3000
900
20
8