如何知道如果使用双串往返安全吗?(How to know if a double string is

2019-09-21 11:40发布

我有一个双重的文本表示,想知道它是否是安全的往返它加倍和背部。 我怎么知道,如果我也愿意接受任何形式的输入数字式? 或者我怎么知道如果在双串与Double.Parse解析任何精度丢失? 或如何的toString双重相同的格式相匹配的另一双串? 任何对这些问题的回答将是一个解决方案,我想。

Answer 1:

使用R格式说明的转换doublestring

myDouble.ToString("R")

见往返(“R”)格式说明在MSDN上。

往返(“R”)格式说明保证被转换成字符串的数值将被解析回到相同的数值。 此格式只对单人, 双人和BigInteger的类型支持。

(重点煤矿)



Answer 2:

当然,这不是往返安全有以下几个原因:

  1. 解析字符串,双时数字格式丢失,因为双不包含有关其视觉表现的任何信息。

  2. 虽然字符串表示通常是小数,双是二进制浮点数。 因此,在双0.1不会完全0.1,因为0.1的二进制表示没有穷个位数。 您可以分析而不是双成十进制,以避免这个问题。

我建议建立存储数量和字符串表示的结构。



文章来源: How to know if a double string is round-trip safe?