为什么double.Parse忽略零的符号?

时间:2011-06-25 16:11:39

标签: c#

例如,在:

bool eq = (1 / double.Parse("-0.0")) == (1 / -0.0);

eq将为false

double.Parse必须经历一些麻烦才能明确地将符号忽略为零,即使不这样做也几乎不会导致问题。 由于我需要原始表示,我必须编写自己的解析函数,其中特殊情况为负零,并使用double.Parse作为其他所有内容。

这不是一个大问题,但我真的想知道为什么他们决定忽略零的标志,因为在我看来,不这样做不会是坏事。

2 个答案:

答案 0 :(得分:2)

我不知道为什么本身,但是一个潜在的解决方案:如果你在开头看到一个-字符,解析字符串的其余部分然后否定它

答案 1 :(得分:-3)

有区别:

  1. double.Parse(“ - 0.0”)= 0,1 / 0 - > INF

  2. 1 / -0.0 - > -INF

  3. 但是声明2中的减号运算符并不意味着“-0.0”。