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

本文关键字:转换 问题 字符串 十进制 | 更新日期: 2023-09-27 18:18:05

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

但是当我把它转换成tostring时,它给出了"-1E-05"

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

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

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

你可以像MSDN的标准数字格式字符串那样使用格式说明符

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

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

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

你将得到"-0.00001"字符串作为结果

每个从object继承的类(因此任何类)都有一个.ToString()方法。它的输出取决于它是否被覆盖,如果是,它是如何被覆盖的(即实现者想要作为字符串给出什么)。如果你为你的一个类实现一个.ToString()方法,你会经历同样的过程。

这是关于"为什么"的问题——"如何"已经被别人回答了。