登陆

double.ToString截断最后2位数,而我仍然可以在调试时看到它们

admin 2022-11-29 4人围观 ,发现0个评论

如何获得double.ToString 有时不会截断最后的数字.

如果我在Visualstudio立即窗口或Quickwatch中显示双精度,我会看到17位小数.当我将它转换为字符串时,我看到15.
可能有一个很好的理由,但我的问题是如何解决它.

? 0.87912328514094507 0.87912328514094507 ? 0.87912328514094507.ToString() "0,879123285140945" 

Win7 fwiw上的Dotnet 4.6.2.



1> Eric Lippert..:

实现这一目标有两种标准机制.

如果你"R"作为参数传递给ToString那么你得到往返字符串.也就是说,将double转换为字符串,然后将字符串转换为double的字符串总是为您提供开头的双精度字符串.

如果您"G17"作为参数传递,那么您将获得标准字符串格式,但扩展到17个小数位.

你不知道这一点当然可以原谅!这种机制不是特别容易发现的.在过去的40年里,我并不是格式化字符串未能发展的忠实粉丝.

有关更多详细信息,请阅读以下文档:https://docs.microsoft.com/en-us/dotnet/api/system.double.tostring

请发表您的评论
不容错过
Powered By Z-BlogPHP