我有这样的数字: -1.0001 -10000.01
我需要得到这个: -1.0001 -10000,01
要求: - 小数分隔符是“,” - 组分隔符是“” - 逗号之后的数字的一部分可以具有不同的长度,这取决于实际数据。
我尝试使用这个掩码:“### ### ## 0。####”来格式化数字。 当数字很大时 - 一切都很好,但是当它很小时 - 我从一个数字的左边得到空格。我明白了: “ - 1,0001” “ - 10 000,01”
据我所知,这些空间来自我使用的面具。
有一些解决方法,但它们不是那么美丽和美观。
有没有办法正确地做到这一点?
谢谢!
答案 0 :(得分:1)
当您发布时,stackoverflow会自动删除这些空格,但我认为您可以通过使用Trim来解决您的问题
something.ToString("### ### ##0.####").Trim();
答案 1 :(得分:1)
尝试使用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,01 -1,0001 -100000,001
第二次编辑: 添加了屏蔽以在小数位上获得更好的结果。