floating-point相关内容

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

刚刚,GCC 4.6.0与 libquadmath 一起出现。不幸的是,GNU支持Fortran,但不支持C或C ++(所有的都包括.so)。我没有找到一种方法在C ++中使用这些新功能,但是,GNU C确实支持 __ float128 类型的保证四重精度浮点。 GNU C似乎不支持 libquadmath 中的数学函数,例如 fabsq (绝对值, q 作为quad的后缀)。 函数在C + ..
发布时间:2016-10-14 10:20:49 C/C++开发

信号的有用性NaN?

我最近在IEEE 754和x87架构上阅读了很多。我正在考虑使用NaN作为一个“缺失值”在一些数字计算代码我正在努力,我希望使用信号 NaN将允许我捕获浮点异常在那里我不想继续“缺失值”。相反,我将使用 quiet NaN来允许“缺失值”通过计算传播。然而,信号NaNs不工作,因为我认为他们将基于(非常有限的)文件存在他们。 这里是我所知道的所有这些使用x87和VC ++): _EM_ ..
发布时间:2016-10-13 12:09:01 C/C++开发

不正确的浮点数学?

这是一个问题,这让我完全不知道过去几个小时... 我有一个方程硬编码在我的程序: double s2; s2 = - (0 * 13)/ 84 + 6 / 42-0 / 84 + 24/12 +(6 * 13)/ 42; 每次运行程序时,计算机都输出3作为答案,但是做数学更进一步,在将方程输入Matlab之后,我也得到答案4.这里是怎么回事? 我可 ..
发布时间:2016-10-13 11:54:25 C/C++开发

浮动的哈希函数

我目前正在使用C ++实现一个哈希表,我想为浮动创建一个哈希函数... 我要处理浮点数整数通过填充十进制数字,但是我意识到,我可能达到溢出与大数字... 有一个很好的方法来散列浮点数? 你不必直接给我函数,但我想看看/理解不同的概念... 注意: 我不需要它真的很快, 我看过浮动广告不应该被哈希处理,因为计算的速度,有人可以确认/解释这个,并给我其他原因浮动不应 ..
发布时间:2016-10-13 11:23:22 C/C++开发

Excel如何成功舍入浮动数字,即使它们不精确吗?

例如, 我在我的C ++中尝试了所有类型的Round,我没有将数字四舍五入到某些小数位。例如,Round(x,y)将x舍入为y的倍数。所以Round(37.785,0.01)应该给你37.79而不是37.78。 我重新打开此问题,要求社群提供帮助。问题是如何解决这个问题呢? $ b(b) 问题是如何解决这个问题? $ b 这个 round()for C ++中的解决方案 “ ..
发布时间:2016-10-13 11:17:13 C/C++开发

将浮点数与零比较

C ++常见问题解答“[29.17]为什么我的浮点数比较无效? “建议这种平等测试: #include / * for std :: abs(double)* / inline bool isEqual(double x,double y) { const double epsilon = / *一些小数字1e-5 * /; return std :: ab ..
发布时间:2016-10-13 11:12:30 C/C++开发

在C ++中使用NaN?

在C ++中使用NaN的最好方法是什么? 我发现 std :: numeric_limits和 std :: numeric_limits :: signaling_NaN()。我想使用 signaling_NaN 表示未初始化的变量,如下所示: double diameter = std :: numeric_limits ..
发布时间:2016-10-13 11:00:32 C/C++开发

为什么在MSVC中默认情况下浮点值(如3.14)被视为双精度值?

为什么需要放置3.14f而不是3.14来禁用所有这些警告? 这是一个一致的原因吗? 解决方案 这是C ++(和C)浮点文字的类型为double,如果您需要它们为浮点型,则使用 f 后缀。似乎没有任何明确说明的原因,为什么,但我猜想它是a)与C兼容,和b)精度和存储之间的权衡。 2.13.3浮动文本浮动文本的类型 是double,除非后缀明确指定了 。 后缀f和F指定float ..
发布时间:2016-10-13 10:42:27 C/C++开发

避免C ++中的异常值

在长时间搜索性能错误后,我阅读了关于非正规浮点值。 很显然,反规范化的浮点值可能是一个主要的性能问题,说明在这个问题: 为什么要将0.1f改为0会使性能降低10倍? 我有一个英特尔酷睿2双核,我正在使用gcc编译,使用 -O2 。 那么我该怎么办?我可以以某种方式指示g ++避免反常值吗? 如果没有,我可以以某种方式测试一个 float 是否正常? 解决方案 您可 ..
发布时间:2016-10-13 10:25:55 C/C++开发

我们应该一般使用float字面量来代替更简单的双字面量吗?

在C ++ (或者也许只有我们的编译器VC8和VC10) 3.14 是双字面值和 3.14f 是一个浮点文字。 现在我有一个同事说: 我们应该使用float-literals作为float计算,double-literals用于double计算,因为这可能会影响在计算中使用常量时计算的精度。 具体来说,我的意思是: double d1,d2 ; float f1,f2 ..
发布时间:2016-10-13 10:25:35 C/C++开发

如何检测双精度浮点溢出和下溢?

我有以下变量: double dblVar1; double dblVar2; 它们可能具有大值,但小于 double 最大。 我对上述变量,如加法,乘法和幂,有各种算术: double dblVar3 = dblVar1 * dblVar2; double dblVar4 = dblVar1 + dblVar2; double dblVa ..
发布时间:2016-10-13 10:23:37 C/C++开发

double还是float,这是更快?

我正在阅读“加速C ++”。我发现一个语句“有时 double 的执行速度比C ++中的 float 更快。在读完句子后,我对 float 和 double 工作感到困惑。请向我解释这一点。 解决方案 取决于本机硬件的功能。 如果硬件实现double(像x86那样),那么通过将float扩展到这里来模拟float,并且转换会花费时间。 如果硬件仅实现float,那么使用doub ..
发布时间:2016-10-13 10:21:58 C/C++开发

在哪个顺序应该添加浮点数以获得最精确的结果?

这是我在最近的采访中提出的一个问题,我想知道(我实际上并不记得数值分析的理论,所以请帮助我:) 如果我们有一些函数累积浮点数: std :: accumulate v.begin(),v.end(),0.0); v 是 std :: vector 。 ? 我怀疑排序的数字会以升序排列使数字错误减少,但很遗憾,我无法自己证明。 PS 解决方案 你 ..
发布时间:2016-10-13 10:03:57 C/C++开发