【发布时间】:2012-05-21 11:28:09
【问题描述】:
如果我这样做
double d = 0;
if (d == 0) {
...
}
Resharper 在比较 d == 0 时抱怨“浮点数与相等运算符的比较。舍入值时可能会丢失精度。”
为什么?用双精度或浮点数表示精确的零并不难吗?
我知道,如果我与没有精确二进制表示的其他值(例如 0.2)进行比较,这样的警告将是相关的。
【问题讨论】:
-
我不知道,但是如果你比较
if (d == 0.0)会发生什么?会更没用,但会是双倍的。 -
请删除更多无用的标签,如零并添加您的语言。谢谢
标签: c# floating-point resharper