我使用以下代码:
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”?
答案 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)
答案 4 :(得分:1)
Console.Write(string.Format("{0:0.000}", (12005557590928.143m)));