双到字符串转换

时间:2013-01-09 15:43:23

标签: c# wpf string-formatting

我使用以下代码:

string.Format("{0:###,###,###,###,###.00}",12005557590928.143);

将double值转换为string。

它输出为“12,005,557,590,928.10”

如果我将其更改为

string.Format("{0:###,###,###,###,###.##}",12005557590928.143);

我明白了。 “12,005,557,590,928.1”。

如何将输出设为“12005557590928.143”?

5 个答案:

答案 0 :(得分:3)

由于您用于数字的数据类型,您会看到精度错误。尝试使用固定点数类型(在本例中为decimal):

string.Format("{0:###,###,###,###,###.###}", 12005557590928.143m);

答案 1 :(得分:1)

我相信你想string.Format("{0:###,###,###,###,###.000}",12005557590928.143); (注意最后的额外零点)

答案 2 :(得分:1)

您可以使用

(12005557590928.143).ToString("R")

自定义数字格式字符串永远不会显示System.Double的超过15位小数。如果您需要更高的精确度,请考虑使用System.Decimal

如果您的目标是显示Double的“隐藏”数字,请使用标准数字格式字符串"R"(“往返”)或{{1} }(“一般”17位)。

答案 3 :(得分:1)

尝试使用.ToString("R")

Console.WriteLine((12005557590928.143).ToString("R"));

这是DEMO

答案 4 :(得分:1)

Console.Write(string.Format("{0:0.000}", (12005557590928.143m)));