mscorelib.dll中的double.ToString(“F”)System.FormatException

时间:2017-05-18 20:48:07

标签: c# tostring fixed-point

我有C#代码,它使用固定点格式将具有大量小数位的double转换为字符串,并将其显示在文本框中。这是一个例子:

stringReadTextBox.AppendText("Test Altitude = " +T.Altitude.ToString("F") + Environment.NewLine)

其中T.Altitude是一个双倍,看起来像45.9999999999999999999999999999,但范围从大约30到210总是有大量的小数位(这是由于设备的固件我得到的数字)。

我使用.ToString(“F”)对其进行格式化以使其更具可读性。然而,经过大约300 - 600次迭代后我会随机得到一个

  

mscorelib.dll中的System.FormatException

为什么会这样?

我的代码运行正常,并且在异常发生时不会停止,但我想清理它。直到我添加“F”格式化属性才发生这种情况。

之前只是T.Altitude.ToString()它从未发生过。

可能是小数位数过多的结果吗?

这是一个多线程程序,所以我不确定如何详细捕获异常,我有大量代码的try-catch块,但这是我得到的详细信息。

我尝试搜索类似的帖子,但找不到与此类具体案例有关的任何内容。

永远不会将null转换为字符串,所以我知道不是这样。

我看到的其他帖子每次都会发生,我的帖子只发生在该行的几百次迭代之后。请在投票之前请求更多信息,因为我几乎没有代表。

0 个答案:

没有答案