小编Phi*_*ing的帖子

为什么通过字符串进行的往返转换对双重不安全?

最近我不得不将双序列化为文本,然后将其取回.该值似乎不相等:

double d1 = 0.84551240822557006;
string s = d1.ToString("R");
double d2 = double.Parse(s);
bool s1 = d1 == d2;
// -> s1 is False
Run Code Online (Sandbox Code Playgroud)

但根据MSDN:标准数字格式字符串,"R"选项应该保证往返安全.

往返("R")格式说明符用于确保转换为字符串的数值将被解析回相同的数值

为什么会这样?

c# precision double tostring

184
推荐指数
2
解决办法
9125
查看次数

标签 统计

c# ×1

double ×1

precision ×1

tostring ×1