Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除小数中的尾随零_C#_.net_String_Format_Decimal - Fatal编程技术网

C# 删除小数中的尾随零

C# 删除小数中的尾随零,c#,.net,string,format,decimal,C#,.net,String,Format,Decimal,我想去掉小数点后的零。它从DB加载,精度为5 我使用的是逗号(,)是小数点的区域性 例如: 1000050->100005 1000000->10 000000->0 000001->000001 我可以使用科学符号,但我在任何时候都不想要科学符号 BR,m.试试“N”,如果数字是1000或更高,它会添加逗号。可能有更优雅的解决方案,但这对字符串有效 string[] decimals = { "10,00050",// -&g

我想去掉小数点后的零。它从DB加载,精度为5

我使用的是逗号(,)是小数点的区域性

例如:

  • 1000050->100005
  • 1000000->10
  • 000000->0
  • 000001->000001
我可以使用科学符号,但我在任何时候都不想要科学符号


BR,m.

试试“N”,如果数字是1000或更高,它会添加逗号。

可能有更优雅的解决方案,但这对字符串有效

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' })));
        }
你可以使用


1000000->10这将留下一个尾随的零。打字错误?@PeteOakey可能不会,因为它在小数点之前。(我假设OP使用的区域性带有
作为小数点。@PeteOakey他指的是小数分隔符右侧的尾随零。确定-在这种情况下,逗号是小数分隔符。我已更新了问题以反映这一点。我建议在两种stringdecimal转换中指定
不变量区域性
。我不建议这样做锈菌培养。这不太正确:它将四舍五入到12.45679。假设小数点是456789000。如何将其格式设置为12.456789?@ReacherGilt“从DB加载,精度为5。”“您的示例为精度6”
decimal d = 12.45600m;
d.ToString("0.#####");