dfdfd
朕想知道
继续学习
朕想知道
看
朕想知道
朕想知道
@FishC给我解释下这篇文章NaN那块 为什么这就不是一个数了
11063216906 发表于 2026-06-20 20:20
@FishC给我解释下这篇文章NaN那块 为什么这就不是一 ...
关于NaN的解释:
[*]NaN 全称 “Not a Number”,中文意思是“非数字”。
[*]它虽然是数字类型的一个特殊值(例如在JavaScript中 typeof NaN 返回 "number"),但本身不代表任何有效的实数或浮点数。
[*]无效的数学运算会得到NaN,比如 0 / 0 或 Math.sqrt(-1)。
[*]重要特性:NaN与任何值(包括自身)都不相等,所以 NaN == NaN 的结果是 false。
[*]判断一个值是否为NaN,不能用 === 或 ==,而应该使用 isNaN() 或 Number.isNaN()。
简单总结:NaN 是一个标记,告诉你“这个结果在数学上没有定义”,所以它虽然“是数字类型”,但“不是一个数”。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
FishC 发表于 2026-6-20 20:20
关于NaN的解释:
[*]NaN 全称 “Not a Number”,中文意思是“非数字”。
当 exp 字段全为 1,且 frac 字段非0,为什么是NaN
11063216906 发表于 2026-06-20 20:22
FishC 发表于 2026-6-20 20:20
关于NaN的解释:
...
当 exp 字段全为 1 且 frac 字段非 0 时,IEEE 754 标准规定该位模式代表 NaN(Not a Number)。为什么这样设计呢?
[*]如果 exp 全为 1 且 frac 全为 0,则用于表示 无穷大(Infinity)。
[*]剩下的 exp=全1 但 frac 不为 0 的组合,就被用来表示“非数字”,因为它们是无效的浮点编码。
这些“非数字”本身不代表任何实数,而是专门用来标记 非法数学运算的结果,例如:
[*]0 除以 0
[*]无穷大减无穷大
[*]负数开平方(如 √-1)
[*]使用未初始化的浮点变量
所以,NaN 之所以“不是数”,是因为它不代表一个真实的数值,而是一个特殊的标识符,告诉程序员或硬件:“这个计算出了问题,结果没有意义”。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
朕想知道
1
朕想知道
朕想知道
没看懂嘻嘻嘻
{:13_433:}
朕想知道
朕想知道
朕想知道
这下知道