算法小白的心得笔记:关于Nan

简介: 在C++中,NaN(Not a Number)是一种特殊的浮点数值,用于表示无法表示的数值或未定义的操作,例如0除以0。如果你的double类型变量显示为NaN,那么可能是在计算过程中出现了这种未定义的操作。

NaN 是什么

在C++中,NaN(Not a Number)是一种特殊的浮点数值,用于表示无法表示的数值或未定义的操作,例如0除以0。如果你的double类型变量显示为NaN,那么可能是在计算过程中出现了这种未定义的操作。


如果你想检查一个double类型变量是否为NaN,你可以使用C++标准库中的std::isnan函数。例如:


#include <cmath> // for std::isnan
double d = std::sqrt(-1); // this will be NaN
if (std::isnan(d)) {
    std::cout << "d is NaN" << std::endl;
} else {
    std::cout << "d is not NaN" << std::endl;
}


在上述代码中,std::sqrt(-1)会返回NaN,因为不能对负数开平方。然后我们使用std::isnan来检查d是否为NaN。


如果你想打印一个double类型的NaN值,你可以直接使用std::cout,例如:


double d = std::sqrt(-1); // this will be NaN
std::cout << d << std::endl; // this will print "nan"


这将打印出"nan"。


怎么存放一个NaN类型的值

在C++中,你可以使用标准库中的函数std::nan("")来创建一个NaN值,并将其存放在一个double类型的变量中。例如:


#include <cmath> // for std::nan
double d = std::nan("");
std::cout << d << std::endl; // this will print "nan"


在上述代码中,std::nan("")会返回一个NaN值,我们将其存放在double类型的变量d中。然后我们打印d,将会输出"nan"。


另外,你也可以通过一些未定义的数学操作来得到NaN值,例如0除以0,或者对负数开平方等。例如:


double d = 0.0 / 0.0; // this will be NaN
std::cout << d << std::endl; // this will print "nan"


在上述代码中,0除以0是未定义的,所以结果是NaN。我们将这个结果存放在double类型的变量d中,然后打印d,将会输出"nan"。


std::nan(“”)需要什么头文件

std::nan("")函数需要包含头文件。这个函数是C++标准库中的数学函数,用于生成一个"非数字"(NaN)的特殊浮点值。


所以,你的代码应该是这样的:


#include <cmath> // for std::nan
#include <iostream> // for std::cout
int main() {
    double d = std::nan("");
    std::cout << d << std::endl; // this will print "nan"
    return 0;
}


在这段代码中,我们首先包含了和头文件,然后在main函数中,我们使用std::nan("")来生成一个NaN值,并将其存储在double类型的变量d中。最后,我们打印出d的值,将会输出"nan"。

分享一个有趣的 学习链接:https://xxetb.xet.tech/s/HY8za

目录
相关文章
|
2月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--希尔排序
数据结构与算法(Java篇)笔记--希尔排序
|
2月前
|
机器学习/深度学习 存储 算法
【算法沉淀】刷题笔记:并查集 带权并查集+实战讲解
【算法沉淀】刷题笔记:并查集 带权并查集+实战讲解
|
4月前
|
搜索推荐
排序算法笔记
排序算法笔记
24 0
|
2月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--快速排序
数据结构与算法(Java篇)笔记--快速排序
|
2月前
|
机器学习/深度学习 算法 搜索推荐
数据结构与算法(Java篇)笔记--归并排序
数据结构与算法(Java篇)笔记--归并排序
|
2月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--选择排序
数据结构与算法(Java篇)笔记--选择排序
|
3月前
|
存储 搜索推荐 算法
【排序】软考笔记:简要回顾下常见的几种排序算法
【排序】软考笔记:简要回顾下常见的几种排序算法
48 0
【排序】软考笔记:简要回顾下常见的几种排序算法
|
3月前
|
存储 算法 Java
数据结构与算法笔记(一)
数据结构与算法笔记(一)
105 0
|
4月前
|
算法
链表算法笔记
链表算法笔记
22 0
|
4月前
|
XML 算法 前端开发
北大陈斌Python算法笔记(二)
北大陈斌Python算法笔记(二)
39 0