除以零:int与float

use*_*own 1 c# python java vb.net math

将int除以零将抛出异常,但浮点数不会 - 至少在Java中.为什么浮点数有额外的NaN信息,而int类型没有?

Mar*_*ers 8

设计浮点数的表示使得存在一些特殊的位组合以存储特殊值,例如NaN,无穷大等.

int类型没有未使用的表示 - 每个位模式对应一个整数.这有很多好处:

  • 整数类型的范围尽可能大 - 没有浪费位模式.
  • 整数的表示很容易理解,因为没有特殊情况.
  • 即使在非常简单的处理器上,也可以以极高的速度完成整数运算.