我有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转换为字符串,所以我知道不是这样。
我看到的其他帖子每次都会发生,我的帖子只发生在该行的几百次迭代之后。请在投票之前请求更多信息,因为我几乎没有代表。