如何知道双字符串是否往返安全?

And*_*ita 5 c# double parsing double-precision

我有一个 double 的文本表示,想知道将它往返于 double 和 back 是否安全。如果我也想接受任何类型的输入类型,我怎么知道这一点?或者我怎么知道当用 Double.Parse 解析双字符串时是否有任何精度丢失?或者我如何 ToString a double 以匹配与另一个双字符串相同的格式?对这些问题中的任何一个的回答将是我认为的解决方案。

Ode*_*ded 5

使用R格式说明符将 转换double为 a string

myDouble.ToString("R")
Run Code Online (Sandbox Code Playgroud)

请参阅MSDN 上的往返 (“R”) 格式说明符。

往返 ("R") 格式说明符保证转换为字符串的数值将被解析回相同的数值。此格式仅支持 Single、Double和 BigInteger 类型。

(强调我的)

  • “R”转换器不可靠。有关更多信息,请参阅 http://stackoverflow.com/questions/24299692/why-is-a-round-trip-conversion-via-a-string-not-safe-for-a-double?rq=1。 (2认同)