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

本文关键字:精度 格式 | 更新日期: 2023-09-27 18:07:16

我使用格式字符串F2来转换双精度值。如果双值是9999

,我得到的格式化值是9999.00

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

为了更清楚,我需要的输出是当给定左边的参数时,我接收到右边的输出

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

有什么标准的字符串格式吗?

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

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

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

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

您想要的字符串是F0。

文档在这里:

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

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

输出将是;

9999

这是DEMO

查看Standard Numeric Format Strings