浮点精度格式以抑制尾随零

时间:2013-04-04 05:35:29

标签: c# .net double

我使用格式字符串F2来转换double值。如果double值为9999.00

,我将格式化值设为9999

我应该使用哪种格式字符串来避免9999.00中的尾随零?

更清楚一点,我需要的输出是当左边的参数给出右边的输出时

1.211 -> 1.21
1.245 -> 1.25
1.1   -> 1.1
1     -> 1

有没有标准的字符串格式呢?

3 个答案:

答案 0 :(得分:4)

你想要的字符串是F0。

文档在这里:

http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

答案 1 :(得分:4)

您可以使用包含#的格式字符串来选择性地包含最多给定的小数位数,但不能超过要求的数量。例如,您可以使用格式字符串"0.##"

double d = 1.245;
Console.WriteLine(d.ToString("0.##")); 

哪个会产生1.25。当给定具有该值的参数时,相同的格式字符串将产生1.1作为输出。

答案 2 :(得分:1)

double d = 9999;
Console.WriteLine(d.ToString("F0"));

输出将是;

9999

这是DEMO

查看Standard Numeric Format Strings

的更多信息