c#中的数字格式
本文关键字:格式 数字 | 更新日期: 2023-09-27 18:14:30
我有这样的数字:-1.0001-10000.01
我需要得到这个:-1.0001-10000年01
要求:—十进制分隔符为","-组分隔符为" "-逗号后的数字部分可以有不同的长度,这取决于实际数据。
我尝试使用这个掩码:"### ### ##0。####"来格式化数字。当数字很大的时候-一切都可以,但是当它很小的时候-我从数字的左边得到空格。我明白了:" - 0001 "- 10000,01"
据我所知,这些空格来自我使用的掩码。
有一些变通的方法,但它们不是那么漂亮和美观。
有什么方法可以正确地做到这一点吗?
谢谢!
尝试使用NumberFormatInfo类来格式化您的号码。我使用下面的代码来检查我的答案,它适用于我测试的大/小情况:
static void Main(string[] args)
{
double smallNumber = -1.01;
double smallNumberMoreDigits = -1.0001;
double bigNumber = -100000.001;
double longNumber = 2.2347894612789;
Thread.CurrentThread.CurrentCulture = new CultureInfo("ru", false);
Console.Out.WriteLine(smallNumber.ToString("#,0.####"));
Console.Out.WriteLine(smallNumberMoreDigits.ToString("#,0.####"));
Console.Out.WriteLine(bigNumber.ToString("#,0.####"));
Console.Out.WriteLine(longNumber.ToString("#,0.####"));
Console.Read();
}
编辑:我查了一下你的资料,发现你在俄罗斯。您正在寻找通用俄语数字格式吗?我已经更改了上面的代码。看一看是否符合你的要求。它给出了以下结果:
1, 010001-100000年、001年
第二个编辑:添加遮罩以获得更好的小数点效果。
当你发布时,空格被stackoverflow自动删除,但我认为你可以通过使用像
这样的Trim来解决你的问题something.ToString("### ### ##0.####").Trim();