我想知道您是否可以用浮点类型解释溢出。

float.MaxValue == float.MaxValue + 1 // returns true

最佳答案

因为1太小而无法在float.MaxValue值中产生凹痕。
小于1e32的任何值都将低于浮点数的精度,因此它实际上与加零相同。
编辑:
ulrichb表明,值1e23实际上会影响float.MaxValue,这意味着您根本不比较浮点数,而是加倍。编译器在添加和比较之前将所有值转换为 double 。

关于c# - 为什么[float.MaxValue == float.MaxValue +1]返回true?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4251298/

10-11 21:57
查看更多