相关疑难解决方法(0)

std :: numeric_limits :: infinity()的倒数是零吗?

C++标准(或IEEE 754浮点标准)中有什么保证1./std::numeric_limits<double>::infinity()零(或至少是一个小数字)?

c++ floating-point infinity

21
推荐指数
2
解决办法
1108
查看次数

确保C++双精度数为64位

在我的C++程序中,我需要从外部字节序列中提取64位浮点数.有没有办法确保在编译时双打是64位?我应该使用其他类型来存储数据吗?

编辑:如果您正在阅读本文并实际寻找确保以IEEE 754格式存储的方法,请查看下面的Adam Rosenfield的答案.

c++ compiler-construction precision types ieee-754

19
推荐指数
6
解决办法
1万
查看次数

否定浮点数总是安全的

考虑:

double f = foo();
double g = -f;
Run Code Online (Sandbox Code Playgroud)

哪里foo()可以返回任何分配给的东西f.

double g = -f;在C和C++中是安全的吗?对于IEEE 754类型,显然是C和C++不限制浮点实现(与Java不同).

如果它是安全的,那么就-g总是比较truefoo()

(上述情况不适用于int2的补码).

c c++ floating-point

8
推荐指数
1
解决办法
662
查看次数

C和C++编译器如何实现浮点数相等的决策?

例如,

float a = 1.0;
float b = 1.2;

puts(a == b? "equal": "not equal");
Run Code Online (Sandbox Code Playgroud)

编译器是按位还是通过其他方法处理它?

(我知道通过"=="来确定浮点数的相等性不是一个好的选择,我只是想知道编译器如何处理这种情况.)

c c++ floating-point-precision

7
推荐指数
1
解决办法
439
查看次数

如何测试文件存储的浮点表示?

我将科学数据转储到文件中.目前我只是将它们与它们在内存中的相同表示倾倒.我已经记录了它们是IEEE754,但是我希望在代码中声明这一点,这样如果它被移植到一个奇怪的架构并与我的文档分开(研究代码被传递),它就会在编译时出错.目前我有

static_assert(sizeof(double)==8), "message");
Run Code Online (Sandbox Code Playgroud)

有没有办法测试IEEE754?这可以是静态断言吗?

c++ floating-point c++11

6
推荐指数
1
解决办法
166
查看次数

浮点数,双打数和长双数是否具有保证的最小精度?

从我之前的问题" 浮点精度是否可变或不变? "我收到一条回复说,

C提供DBL_DIG,DBL_DECIMAL_DIG,以及它们的float和long double对应物.DBL_DIG表示最小相对小数精度.DBL_DECIMAL_DIG可以被认为是最大相对小数精度.

我看了这些宏.它们位于标题中<cfloat>.从CPLUSPLUS参考页他们列出了宏float,doublelong double.

以下是最小精度值的宏.

FLT_DIG 6 or greater

DBL_DIG 10 or greater

LDBL_DIG 10 or greater

如果我把这些宏面值,我会假设float有最少6小数精度,而doublelong double有10最低小数精度然而,作为一个大男孩,我知道,有些事情可能是好得是真的.

因此,我想知道.浮点数,双精度数和长双精度数是否保证最小小数精度,这个最小小数精度是上面给出的宏的值?

如果没有,为什么?


注意:假设我们使用的是编程语言C++.

c++ floating-point minimum language-lawyer floating-point-precision

6
推荐指数
1
解决办法
1050
查看次数

位集浮点或双值 C++

我有两个浮点(32 位)和双(64 位)的 IEEE754 二进制表示位集。如何将此位集转换为真正的浮点数或双数?

c++ floating-point bitset

4
推荐指数
1
解决办法
1033
查看次数

检查浮点除法是否以 +-inf 结尾的可移植方法

我有一个形式1.0f / xxa的浮点除法float。我如何事先检查是否x非常接近0.0f结果将是 +-inf / undefined?我不确定标准限制中的 epsilon 是否足够。

问候。

c++ floating-point c++11

3
推荐指数
2
解决办法
374
查看次数

无限浮点数是否满足这些方程?

对于双重或浮动,

1. -inf < inf == true

2. inf + inf == inf

3. -inf - inf == -inf

4. positive / 0.0 == inf

5. negative / 0.0 == -inf

6. any real number < inf == true

7. -inf < any real number == true

这个陈述是真的吗?

我们不知道(inf < inf),但我们可以肯定它不会抛出任何例外.

c++ floating-point infinity

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