`总是返回无序结果`意味着`返回false`

时间:2016-10-12 06:18:52

标签: javascript floating-point ieee-754

我正在阅读有关NaN here的内容,并说:

  

与NaN的比较始终返回无序结果,即使是   与自身比较。

我对无序这个词感到困惑。出于实际原因,这是否意味着比较将始终评估为false?似乎是这样的:

// all statemens below evaluate to false

NaN === NaN
NaN > NaN
NaN < NaN

NaN > 3
NaN < 3
NaN === 3

1 个答案:

答案 0 :(得分:2)

是。比较两个浮点数ab时,将会有4个结果中的一个:

  • a小于b
  • a等于b
  • a大于b
  • ab无序。

IEEE754规范指出,当ab为NaN时,ab无序(包括ab的情况<是NaN)。

在大多数语言中,前3个语言都有自己的谓词(通常为==>void list_dir(char **dirp_array) { char *dir_name = "./"; DIR *dp; struct dirent *dirp; if ((dp = opendir((const char *)dir_name)) == NULL){ perr_exit("opendir errno"); } while((dirp = readdir(dp)) != NULL){ (* dirp_array) = strdup((char *)dirp->d_name); printf("%s\n",(* dirp_array)); dirp_array ++; //dirp_array += strlen(*dirp_array); } *dirp_array = NULL; closedir(dp); } )。无序案例没有,但可以通过检查所有其他案例是否为假来进行测试。