Tag: 浮点

安静的NaN和信号NaN有什么区别?

我已经阅读了浮点数,并且我明白NaN可能来自操作。 但我完全不明白这些概念是什么。 有什么区别? 在C ++编程中可以生成哪一个? 作为一名程序员,我可以编写一个程序来创build一个sNaN吗?

在Ruby中设置浮点的显示精度

是否有可能在Ruby中设置浮点的显示精度? 就像是: z = 1/3 z.to_s #=> 0.33333333333333 z.to_s(3) #=> 0.333 z.to_s(5) #=> 0.33333 或者我必须重写Float的to_s方法?

iPhone上的双重浮动

我刚刚听说iPhone不能做双本机,从而使他们慢得多,正常的浮动。 这是真的? 证据? 我对这个问题非常感兴趣,因为我的程序需要高精度的计算,而且我将不得不在速度上妥协。

将浮点数舍入到最近的整数?

正如标题所暗示的,我想获取一个浮点数并将其舍入到最接近的整数。 但是,如果它不是一个整体,我总是想要舍入variables,不pipe它与下一个整数有多接近。 有没有办法做到这一点?

在python中将数字拆分为整数和小数部分

有没有把数字1234.5678分成两部分(1234,0.5678),即整数部分和小数部分的pythonic方法?

在C ++中,正确的是<,==和>中的一个,在float上保证是真的?

在C ++中,我是否有保证,对于任何给定的float a和float b ,只有一个a < b , a == b和a > b是真的? 如果这在编译器和平台之间有所不同,我对x86上的Visual C ++感兴趣。

为什么声明浮动时需要“f”?

例: float timeRemaining = 0.58f; 为什么在数字的最后需要f ?

使用2个“浮动”模拟“双”

我正在编写一个只支持32位单精度浮点运算的embedded式硬件程序。 然而,我正在执行的algorithm需要64位双精度加法和比较。 我正在尝试使用两个float的元组来模拟double数据types。 所以一个double d将被模拟为一个包含元组的struct : (float d.hi, float d.low) 。 使用字典顺序来进行比较应该很简单。 然而,加法是有点棘手,因为我不知道我应该使用哪个基地。 应该是FLT_MAX ? 我怎么能检测一个进位? 如何才能做到这一点? 编辑(清晰):我需要额外的有效数字,而不是额外的范围。

如何浮点平方根逼近工作?

我发现了一个相当奇怪的但是工作的float的平方根逼近; 我真的不明白。 有人可以解释我为什么这个代码的作品? float sqrt(float f) { const int result = 0x1fbb4000 + (*(int*)&f >> 1); return *(float*)&result; } 我已经testing了一下, 它输出的值从std::sqrt()大约1到3% 。 我知道Quake III的快速倒数平方根 ,我猜这是类似的东西(没有牛顿迭代),但是我真的很感激它的解释。 (nota:我已经标记了c和c ++,因为它们都是有效的,ish(参见注释)C和C ++代码)

是浮点数==永远不错?

就在今天,我遇到了一个我们正在使用的第三方软件,在他们的示例代码中有这样的话: // defined in somewhere.h static const double BAR = 3.14; // code elsewhere.cpp void foo(double d) { if (d == BAR) … } 我意识到浮点和它们的表示法的问题,但它让我想知道是否有情况下float == float会好吗? 我不是在问什么时候能工作,而是在什么时候工作。 另外,像foo(BAR)这样的电话怎么样? 这将总是比较相等,因为他们都使用相同的static const BAR ?