float数据类型是单精度32位IEEE 754浮点数,double数据类型是双精度64位IEEE 754浮点数。这是什么意思?什么时候应该使用float而不是double,反之亦然?

可以存储在IEEE 754双类型中而不损失精度的最大“无浮动”整数是多少?换句话说,at会返回以下代码片段:

众所周知,nan在算术中传播,但我找不到任何演示,所以我写了一个小测试:这个例子(在这里运行)基本上产生了我所期望的(否定是有点奇怪,但它是有道理的):MSVC 2015也产生了类似的东西。然而,In

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

我读过关于双精度和单精度之间的区别。然而,在大多数情况下,float和double似乎是可互换的,即使用其中一个似乎不会影响结果。事实真的如此吗?什么时候浮点数和双精度数可以互换?它们之间有什么区别?