删除十进制的尾随零

时间:2012-11-15 16:26:23

标签: c# .net string format decimal

我想删除小数的拖尾零。它从DB加载精度为5.

我正在使用逗号(,)为小数点的文化。

E.g:

  • 10,00050 - > 10,0005
  • 10,00000 - > 10
  • 0,00000 - > 0
  • 0,00001 - > 0.00001

我可以使用General ("G") Format Specifier,但我不想在任何时候使用科学记数法。

BR,m。

3 个答案:

答案 0 :(得分:3)

您可以使用custom numeric format string

decimal d = 12.45600m;
d.ToString("0.#####");

答案 1 :(得分:0)

可能有更优雅的解决方案,但这可以用于字符串。

string[] decimals = {
                                "10,00050",// -> 10,0005
                                "10,00000",// -> 10
                                "0,00000",// -> 0
                                "0,00001",// -> 0,00001
                             };
        foreach (string dec in decimals)
        {
            Console.WriteLine(" {0} -> {1}", dec, decimal.Parse(dec.TrimEnd(new char[] { '0' })));
        }

答案 2 :(得分:-1)

尝试“N”,如果数字是一千或更高,则会添加逗号。