什么是NaN(非数字)?

问题描述 投票:0回答:2

我仍然不知道NaN或(数字不是实数)确切是什么。

主要问题:

  1. NaN值是多少或确切地是NaN(用非数学教授的话来说?)

此外,我对整个情况有一些疑问,这使我在理解NaN应该是什么时感到不满:

不是必需的,但需要子问题:

  1. 哪些操作会导致NaN值变为结果?

  2. 为什么将0.0 / 0.0的结果声明为undefined?应该不是0吗?

  3. 为什么任何数学运算的结果都不能用浮点数或整数表示?值怎么可能代表不了?

  4. 为什么负数的平方根不是实数?

  5. 为什么NaN不等于不确定?

  6. 什么是实数?

  7. 还有非虚数,如果是,它们是什么,并且是NaN的非虚数吗?

  8. 什么是数字数据类型?

我没有找到关于整个互联网中正常人的NaN含义的任何可理解的解释,包括Stack Overflow上的内容。


无论如何,我想以与地方的链接的形式来提供我的研究,我已经扫描了我的问题,即使一些链接在其他编程语言中都指向相同的问题,也已经可以找到一个可以理解的答案,但是并没有给我想要的清晰信息。总计:

维基百科:

https://en.wikipedia.org/wiki/NaN

https://en.wikipedia.org/wiki/IEEE_754

其他:

http://foldoc.org/Not-a-Number

https://www.youtube.com/watch?v=HN_UmxIVS6M

https://www.youtube.com/watch?v=9EsHjXftO7s

堆栈溢出:

对于其他语言的相似或相同的问题(我认为理解的基础非常相似,即使不是相同,我也会提供它们:

In Java, what does NaN mean?

What is the rationale for all comparisons returning false for IEEE754 NaN values?

(Built-in) way in JavaScript to check if a string is a valid number

JavaScript: what is NaN, Object or primitive?

Not a Number (NaN)

C ++问题:

What is difference between quiet NaN and signaling NaN?

Checking if a double (or float) is NaN in C++

Why does NaN - NaN == 0.0 with the Intel C++ Compiler?

What is the difference between IND and NAN numbers


感谢您提供所有有用的答案和评论。

c++ math floating-point nan ieee-754
2个回答
2
投票

浮点数被编码为位模式,但并非使用所有可用的位模式(对于给定数量的位),因此有些位模式不对任何浮点数进行编码。如果找到了此类模式,则将其视为/显示为NaN。


0
投票

数学数字系统包含一组“值”。例如,正整数为0、1、2、3、4等。负整数为-1,-2,-3,-4等(也许也为-0,具体取决于您的数学分支)。

在计算机领域,除其他事项外,浮点数还具有“无穷大”和“非数字”的概念。这就像数字的“ NULL”。这意味着“浮点值在数学意义上不代表数字”。

它们对于程序员float不想给出数字值[还]很有用,并且浮点标准还使用它们来表示操作的“无效”结果。

例如,您可以通过将零除以零来获得NaN,这是我所知道的任何数学分支中都没有有意义的值的运算:您如何在no人之间共享许多蛋糕?。

((如果您尝试使用不带NaN或无穷大概念的整数来执行此操作,则将得到一个[名为]的“浮点异常”;换句话说,您的程序将崩溃。)

阅读有关Wikipedia's article about NaN的更多信息,它几乎回答了您所有的问题。

© www.soinside.com 2019 - 2024. All rights reserved.