十进制到字符串转换问题

时间:2011-12-16 03:11:07

标签: c#

Math.Round((ClosePrice - OpenPrice), 5) = -0.00001

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

Math.Round((ClosePrice - OpenPrice), 5).ToString() = "-1E-05"

为什么会这样?我怎样才能得到“-0.00001”

3 个答案:

答案 0 :(得分:11)

您可以使用MSDN's Standard Numeric Format Strings

上演示的格式说明符
double foo = -0.00001;
Console.WriteLine(foo.ToString("f5"));

答案 1 :(得分:4)

ToString()根据格式化的值选择格式以实现最紧凑的表示。如果您想选择特定格式,则需要使用ToString(string format)重载。例如,如果你打电话

Math.Round((ClosePrice - OpenPrice), 5).ToString("N5")

结果会得到"-0.00001"字符串。

答案 2 :(得分:2)

每个继承自object(因此任何类)的类都有.ToString()方法。它输出的内容取决于它被覆盖的天气,如果是,它是如何被覆盖的(即实现者想要以字符串形式给出什么。它与你实现一个{ {1}}您的某个课程的方法。

这就是“为什么” - 其他人已经回答了“如何”。