相关疑难解决方法(0)

0.1浮点数大于0.1双.我以为它是假的

让:

double d = 0.1;
float f = 0.1;
Run Code Online (Sandbox Code Playgroud)

应该表达

(f > d)
Run Code Online (Sandbox Code Playgroud)

回来true还是false

根据经验,答案是true.但是,我期待它false.

0.1不能在二进制完美表示,而双具有1516十进制精度位数,并且浮体具有只7.所以,他们两个都不到0.1,而双人更接近0.1.

我需要一个确切的解释true.

c c++ floating-point double rounding

100
推荐指数
5
解决办法
8537
查看次数

初始化时(0.0),0.0f的意义是什么?

我见过人们初始化浮点变量的代码,如下所示:

float num = 0.0f;
Run Code Online (Sandbox Code Playgroud)

这之间是否存在显着差异,只是在下面进行以下操作?

float num = 0; 
Run Code Online (Sandbox Code Playgroud)

谢谢.. :)

c

33
推荐指数
3
解决办法
5万
查看次数

C++中的四倍精度(GCC)

就在最近,GCC 4.6.0与libquadmath一起发布.不幸的是,GNU支持Fortran,但不支持C或C++(所有包含的都是.so).我还没有找到在C++中使用这些新功能的方法,但GNU C确实支持__float128保证四倍精度浮点数的类型.GNU C似乎不支持libquadmath中的数学函数,例如 fabsq(绝对值,q是quad的后缀).

有没有办法让这些函数在C++中运行,还是有一些替代库可以用于数学函数__float128?在GCC中使用四倍精度浮子的最佳方法是什么?现在,我可以添加,减去和相乘它们,但这对我来说没用,考虑到我无法将它们转换为字符串或使用诸如truncqfabsq创建我自己的字符串函数之类的函数.

c++ floating-point gcc quadruple-precision

13
推荐指数
1
解决办法
2万
查看次数

使用quadmath的G ++ 4.6.3 Linux中的四倍精度

我尝试执行代码

#include <quadmath.h>
#include <iostream>
int main()
{
  char* y = new char[1000];
  quadmath_snprintf(y, 1000, "%Qf", 1.0q);
  std::cout << y << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

用命令

g++ test.cpp -o test
Run Code Online (Sandbox Code Playgroud)

我收到错误:

/tmp/cctqto7E.o: In function `main':
test.cpp:(.text+0x51): undefined reference to `quadmath_snprintf(char*, unsigned int, char const*, ...)'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

版本是:

g++ --version
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu quadruple-precision

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

打印 __float128,不使用 quadmath_snprintf

在我关于32 位十进制数字浮点/双精度分析的问题中,一个答案说要查看__float128.

我使用了它,编译器可以找到它,但是我无法打印它,因为编译器找不到 header quadmath.h

所以我的问题是:

  1. __float128 是标准的,对吗?
  2. 如何打印?
  3. 是不是 quadmath.h标准的吗?

这些答案没有帮助:

  1. extern C
  2. C++ 中的精度
  3. 印刷

裁判也没有帮助。

请注意,我不想使用任何非标准库。

[编辑]

如果该问题有答案,即使答案是否定的,也会很有用。

c c++ floating-point precision floating-point-precision

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