c# – 比较double.MaxValue的相等性是一个好主意吗?

前端之家收集整理的这篇文章主要介绍了c# – 比较double.MaxValue的相等性是一个好主意吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
可以询问浮点数或MinValue的相同问题.

我正在考虑将它作为特殊值使用.我会看到精确的错误吗?我不希望用这些数字算术,只是设置它们就是这样.

澄清:我使用它来获得哨兵价值.

这是C#规范中描述的内容吗?

解决方法

这取决于你如何使用它.

如果你使用double.MaxValue作为具有特殊语义的标记标记值,那么是的,它只是你要比较的一点模式.例如,您可以使用double.MaxValue来指示“未初始化”或“未知”值.还有其他方法可以做到这一点(例如,使用可以为空的双?),但是使用double.MaxValue也是合理的,假设您的域中不会自然出现该值.

但是,如果你有一些任意的双值,并且你想看看它是否与double.MaxValue“相等”,那么你会想看看这些数字是否在彼此的某个小范围内(epsilon),因为一些精度可以在计算你的另一个双倍价值时已经迷失了.这里需要注意的问题是值超出double.MaxValue,会产生溢出情况.

猜你在找的C#相关文章