例如,在:
bool eq = (1 / double.Parse("-0.0")) == (1 / -0.0);
eq
将为false
。
double.Parse
必须经历一些麻烦才能明确地将符号忽略为零,即使不这样做也几乎不会导致问题。
由于我需要原始表示,我必须编写自己的解析函数,其中特殊情况为负零,并使用double.Parse
作为其他所有内容。
这不是一个大问题,但我真的想知道为什么他们决定忽略零的标志,因为在我看来,不这样做不会是坏事。
答案 0 :(得分:2)
我不知道为什么本身,但是一个潜在的解决方案:如果你在开头看到一个-
字符,解析字符串的其余部分然后否定它
答案 1 :(得分:-3)
有区别:
double.Parse(“ - 0.0”)= 0,1 / 0 - > INF
1 / -0.0 - > -INF
但是声明2中的减号运算符并不意味着“-0.0”。