C# 十进制到字符串的转换问题

C# 十进制到字符串的转换问题,c#,C#,但当我将其转换为tostring时,它会给出“-1E-05” 为什么会这样?如何获取“-0.00001”您可以使用上演示的格式说明符 ToString()根据正在格式化的值选择一种格式,以实现最紧凑的表示。如果要选择特定格式,则需要使用ToString(字符串格式)重载。例如,如果你打电话 double foo = -0.00001; Console.WriteLine(foo.ToString("f5")); 您将得到“-0.00001”字符串作为结果。从对象继承的每个类(以及任何类)都有一

但当我将其转换为tostring时,它会给出“-1E-05”


为什么会这样?如何获取“-0.00001”

您可以使用上演示的格式说明符

ToString()
根据正在格式化的值选择一种格式,以实现最紧凑的表示。如果要选择特定格式,则需要使用
ToString(字符串格式)
重载。例如,如果你打电话

double foo = -0.00001;
Console.WriteLine(foo.ToString("f5"));

您将得到
“-0.00001”
字符串作为结果。

对象继承的每个类(以及任何类)都有一个
.ToString()
方法。它输出的内容取决于它被覆盖的天气,如果被覆盖,它是如何被覆盖的(即,实现者希望以字符串形式给出什么内容)。这与为您的一个类实现
.ToString()
方法的过程相同

这是关于“为什么”——其他人已经回答了“如何”

Math.Round((ClosePrice - OpenPrice), 5).ToString() = "-1E-05"
double foo = -0.00001;
Console.WriteLine(foo.ToString("f5"));
Math.Round((ClosePrice - OpenPrice), 5).ToString("N5")