0

我有这样的数字:-1.0001 -10000.01

我需要得到这个:-1.0001 -10000,01

要求: - 小数分隔符是“,” - 组分隔符是“” - 逗号后面的数字部分可以有不同的长度,这取决于实际数据。

我尝试使用此掩码:“### ### ##0.####”来格式化数字。当数字很大时-一切都很好,但是当它很小时-我从数字的左侧得到空格。我明白了:“- 1,0001” “- 10 000,01”

据我了解,这些空间来自我使用的掩码。

有一些解决方法,但它们并不那么漂亮和美观。

有没有办法正确地做到这一点?

谢谢!

4

2 回答 2

1

当您发布时,stackoverflow 会自动删除空格,但我认为您可以通过使用 Trim 来解决您的问题

something.ToString("### ### ##0.####").Trim();
于 2013-05-21T12:33:56.847 回答
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

第二次编辑:添加掩码以获得更好的小数位结果。

于 2013-05-21T12:46:11.407 回答