我不是问"为什么这个计算结果是NaN",我问"为什么NaN存在,而不是导致异常或错误?"
我一直想知道这一点,并与人们一起讨论.
我得到的唯一答案就是"你不想尝试 - 抓住每一个分歧,你呢?" 或"有些情况下NaN是有效的结果".
话虽如此,我从来没有收到过NaN作为有效结果的具体例子.假设NaN不可能是一个有效的结果,我不明白为什么它存在.如果它出现,据我所知,你有一个错误.期.
您希望程序崩溃并在那里死亡,以便您可以轻松找到出错的地方.这不是让程序运行失败,而是可能写入损坏的数据,可能发送损坏的数据,或做各种令人讨厌的事情 - 在不可避免地崩溃之前.(如"实用程序员"中所述 - 崩溃,不要垃圾")
现在,我相信IEEE 754的设计师比我聪明得多,这让我相信它是其存在的理由.这是什么原因?