相关疑难解决方法(0)

JavaScript中的(内置)方式,用于检查字符串是否为有效数字

我希望在旧的VB6 IsNumeric()功能的同一个概念空间中有什么东西?

javascript validation numeric

1051
推荐指数
22
解决办法
62万
查看次数

检查C++中的double(或float)是否为NaN

是否有isnan()函数?

PS.:我在MinGW(如果这有所不同).

我不得不用isnan()从此解决了<math.h>,这是不存在的<cmath>,这让我#include在第一荷兰国际集团.

c++ double nan

358
推荐指数
12
解决办法
35万
查看次数

为什么NaN - NaN == 0.0与英特尔C++编译器?

众所周知,NaNs在算术中传播,但我找不到任何演示,所以我写了一个小测试:

#include <limits>
#include <cstdio>

int main(int argc, char* argv[]) {
    float qNaN = std::numeric_limits<float>::quiet_NaN();

    float neg = -qNaN;

    float sub1 = 6.0f - qNaN;
    float sub2 = qNaN - 6.0f;
    float sub3 = qNaN - qNaN;

    float add1 = 6.0f + qNaN;
    float add2 = qNaN + qNaN;

    float div1 = 6.0f / qNaN;
    float div2 = qNaN / 6.0f;
    float div3 = qNaN / qNaN;

    float mul1 = 6.0f * qNaN;
    float mul2 = qNaN * qNaN;

    printf( …
Run Code Online (Sandbox Code Playgroud)

c c++ floating-point icc ieee-754

299
推荐指数
3
解决办法
3万
查看次数

对于IEEE754 NaN值,所有比较返回false的理由是什么?

为什么NaN值的比较与所有其他值的行为不同?也就是说,与运算符==,<=,> =,<,>的所有比较(其中一个或两个值为NaN)返回false,这与所有其他值的行为相反.

我想这可以通过某种方式简化数值计算,但我找不到明确说明的理由,甚至在Kahan 的IEEE 754状态讲义中也没有详细讨论其他设计决策.

这种异常行为在进行简单数据处理时会造成麻烦.例如,当在C程序中对某些实值字段的记录列表进行排序时,我需要编写额外的代码来处理NaN作为最大元素,否则排序算法可能会变得混乱.

编辑: 迄今为止的答案都认为比较NaNs毫无意义.

我同意,但这并不意味着正确的答案是错误的,而是一个非布尔值(NaB),幸运的是它不存在.

因此,在我看来,选择返回真或假的比较是任意的,对于一般数据处理,如果它遵循通常的定律(==的反射性,<= =,>的三分法),那将是有利的,以免数据结构依赖这些法律变得困惑.

因此,我要求打破这些法律的一些具体优势,而不仅仅是哲学推理.

编辑2: 我想我现在理解为什么使NaN最大化是一个坏主意,它会搞砸上限的计算.

可能需要NaN!= NaN以避免检测环路中的收敛,例如

while (x != oldX) {
    oldX = x;
    x = better_approximation(x);
}
Run Code Online (Sandbox Code Playgroud)

然而,最好通过比较绝对差异与小限制来编写.所以恕我直言,这是打破NaN反身性的一个相对弱的论据.

floating-point comparison nan ieee-754 iec10967

240
推荐指数
5
解决办法
4万
查看次数

在Java中,NaN是什么意思?

我有一个程序试图缩小double到所需的数字.我得到的输出是NaN.

NaNJava 中的含义是什么?

java nan

98
推荐指数
6
解决办法
26万
查看次数

安静的NaN和信号NaN有什么区别?

我读过关于浮点的内容,我知道NaN可能来自操作.但我无法完全理解这些概念是什么.有什么区别?

在C++编程期间可以生成哪一个?作为程序员,我可以编写一个程序来导致sNaN吗?

floating-point nan ieee-754

81
推荐指数
2
解决办法
2万
查看次数

JavaScript:什么是NaN,Object或原语?

什么是NaN,对象或原始?

NaN - 不是数字

javascript nan

5
推荐指数
2
解决办法
1897
查看次数

IND和NAN数字之间有什么区别

NAN值表示Not A Number,IND值表示Indeterminate number.但这两者之间有什么区别.我们怎样才能在c ++中代表两者.

c++ nan infinity

5
推荐指数
1
解决办法
4172
查看次数