我想删除小数部分的尾部零。它从数据库中精确加载5.删除十进制的零尾部分
我正在使用逗号(,)为小数点的文化。
例如:
- 10,00050 - > 10,0005
- 10,00000 - > 10
- 0,00000 - > 0
- 0.00001 - > 0.00001
我可以使用General ("G") Format Specifier但我不希望科学记数法在任何时候。
BR,m。
我想删除小数部分的尾部零。它从数据库中精确加载5.删除十进制的零尾部分
我正在使用逗号(,)为小数点的文化。
例如:
我可以使用General ("G") Format Specifier但我不希望科学记数法在任何时候。
BR,m。
您可以使用custom numeric format string
decimal d = 12.45600m;
d.ToString("0.#####");
这不太合适:它会舍入到12.45679。假设Decimal是456789000.你怎么样格式化为12.456789? –
@ReacherGilt“从数据库精确加载5.” – Guillaume
“您的示例是精度6” –
尝试“N”,如果数字为一千或更多,则会添加逗号。
可能有更优雅的解决方案,但这对字符串有效。
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' })));
}
我建议在字符串<->的十进制转换中指定'InvariantCulture'。我不相信文化 – CodesInChaos
10,00000 - > 10,这是留下了尾随零。错字? – PeteGO
@PeteOakey可能不会,因为它在小数点之前。 (我假设OP使用'''作为小数点的文化' – CodesInChaos
@PeteOakey他指的是在小数点分隔符右边的尾部零 – Servy