使用C#将数字拆分为数百、数十和单位
本文关键字:单位 数字 拆分 使用 | 更新日期: 2023-09-27 18:26:24
在C#中将给定的较大数字拆分为数百、十和单位的最佳方法是什么?
例如:如果我输入数字43928,我如何在输出上获得40000+3000+900+20+8?
类似这样的东西:
long x = 43928;
long i = 10;
while (x > i / 10)
{
Console.WriteLine(x % i - x % (i / 10));
i *= 10;
}
它会给你输出
8
20
900
3000
40000
Linq实现:
String source = "43928";
// "40000 + 30000 + 900 + 20 + 8"
String result = String.Join(" + ", source
.Select((item, index) => item.ToString().PadRight(source.Length - index, '0')));
您必须使用%
运算符。示例:43928 / 10000 = 4; 43928 % 10000 = 3928; 3928 /1000 = 3; 3928 %1000 = 928, etc...
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)
解析方法:
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