【发布时间】:2022-01-13 22:43:02
【问题描述】:
我知道您通常不能依赖 double 或 decimal 类型值之间的相等性,但我想知道 0 是否是一种特殊情况。
虽然我可以理解 0.00000000000001 和 0.00000000000002 之间的不精确性,但 0 本身似乎很难搞砸,因为它什么都不是。如果你什么都不精确,那它就不再是什么了。
但我对这个话题了解不多,所以不由我说。
double x = 0.0;
return (x == 0.0) ? true : false;
那总是返回 true 吗?
【问题讨论】:
-
该代码中的三元运算符是多余的 :)
-
大声笑你是对的。走我
-
我不会这样做,因为你不知道 x 是如何被设置为零的。如果您仍想这样做,您可能需要舍入或取整 x 以摆脱 1e-12 或可能在末尾标记的类似内容。
标签: c# .net floating-point precision zero