528得票14回答
浮点型和双精度型有什么区别?

我已经了解了双精度和单精度之间的差异。然而,在大多数情况下,float 和 double 似乎可以互换,也就是说,使用其中一个似乎不会影响结果。这是真的吗?何时可以用浮点数和双精度互换?它们之间有什么区别?

357得票12回答
所有的比较操作为什么对于IEEE754 NaN值都返回false?

为什么NaN值的比较行为与所有其他值不同? 也就是说,使用运算符==,=,进行的所有比较,其中一个或两个值为NaN时返回false,与所有其他值的行为相反。 我想这在某种程度上简化了数值计算,但我无法找到明确说明的原因,即使是Kahan的IEEE 754状态讲座笔记中也详细讨论了其他设计决策...

305得票3回答
为什么使用英特尔C++编译器时,NaN - NaN的结果为0.0?

众所周知在算术中 NaN 会传播,但我找不到任何证明,因此我写了一个小测试:#include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::num...

303得票11回答
双精度浮点数可以存储的最大整数

在IEEE 754双精度类型中,最大的“no-floating”整数是多少,而不会失去精度? 换句话说,下面这段代码将返回什么:(点击此处查看)UInt64 i = 0; Double d = 0; while (i == d) { i += 1; d +=...

254得票9回答
Java中的浮点型和双精度型数据类型

浮点数据类型是单精度32位IEEE 754浮点数,双精度数据类型是双精度64位IEEE 754浮点数。 这意味着什么?我应该在什么情况下使用float而不是double,反之亦然?

233得票2回答
IEEE 754浮点数中第一个无法准确表示的整数是多少?

为了更清晰地说明,如果我在使用一个实现IEEE 754浮点数的语言,并声明:float f0 = 0.f; float f1 = 1.f; 如果我对一个IEEE 754浮点数执行操作(比如加、减或乘),然后将它们打印出来,我会得到0.0000和1.0000——完全一致。 但是IEEE 754...

164得票6回答
为什么NaN不等于自身?

相关的IEEE标准定义了一个数字常量NaN(不是数值),并规定NaN应该与自己不相等。为什么呢? 我熟悉的所有语言都实现了这个规则。但是,它经常会引起重大问题,例如当NaN存储在容器中时出现意外行为,当NaN在正在排序的数据中时等等。更不用说,绝大多数程序员期望任何对象都等于自己(在他们了解...

163得票4回答
为什么在Python 3中,4*0.1的浮点数值看起来好看,而3*0.1则不是呢?

我知道大多数十进制数没有精确的浮点表示(浮点数运算是否有问题?)。但是,当两个值都有丑陋的小数表示形式时,我不明白为什么4*0.1可以漂亮地打印为0.4,而3*0.1却不行:>>> 3*0.1 0.30000000000000004 >>> 4*0.1 0....

160得票10回答
C#中的浮点数计算是否一致?是否可能一致?

不,这不是另一个"(1/3.0)*3 != 1"的问题。 我最近一直在阅读浮点数方面的内容;具体来说,同样的计算在不同的架构或优化设置下可能会得出不同的结果。 这对于存储回放的视频游戏或是点对点网络(与服务器-客户端相对),它们依赖于所有客户端每次运行程序都生成完全相同的结果——一个浮点计...

156得票2回答
安静NaN和信号NaN有什么区别?

我了解浮点数,并知道 NaN 的出现与操作有关。但是我不太明白这些概念的确切含义。它们之间有什么区别? 在 C++ 编程中,哪种类型的 NaN 可能出现?作为程序员,我能否编写一个会导致 sNaN 的程序?