floating-point相关内容

将Float转换为整数时如何循环

如果我有 (float)value = 10.50 和do int new_value = $ b 什么规则会绕过数字? 方案 当浮点类型的有限值被转换为整数类型时,小数部分被舍弃(即,值被向零舍入)。 因此,在 -10.5 的情况下,它将转换为 -10 。 C ++ 11 4.9浮动积分转换[conv.fp ..
发布时间:2016-10-14 21:14:36 C/C++开发

浮点数学执行时间

什么占了第一个数据集的添加执行时间?装配说明相同。 DN_FLUSH标志不为ON时,第一个数据集需要63毫秒,第二个数据集需要15毫秒。 DN_FLUSH标志置位时,数据集需要15毫秒,第二个集需要〜0毫秒。 因此,在这两种情况下,第一个数据集的执行时间要大得多。 有没有办法减少执行时间,使其更接近第二个数据集? 我使用C ++ Visual Studio 2005, ..
发布时间:2016-10-14 21:13:38 C/C++开发

浮法加成促进双重?

今天早上我有一个小的WTF时刻。 Ths WTF可以归纳为: float x = 0.2f; float y = 0.1f; float z = x + y; assert(z == x + y); //这个断言被触发! (atleast with visual studio 2008) 原因似乎是表达式 x + y 被提升为double,并与 z 中的截断版本 ..
发布时间:2016-10-14 20:52:05 C/C++开发

什么可能导致确定性过程生成浮点错误

已阅读此问题我可以肯定,给定的使用具有相同输入(在相同硬件上,用相同编译器编译)的浮点算术的过程应该是确定性的。我正在看一个这样的情况,这不是真的,并试图确定是什么可能造成这种情况。 我编译了一个可执行文件,我喂它完全相同的数据,运行在单个机器(非多线程),但我得到的大约3.814697265625e-06的错误,仔细googling后,我发现实际上等于1/4 ^ 9 = 1/2 ^ 18 ..
发布时间:2016-10-14 20:01:26 C/C++开发

如何用逗号打印双

在C ++中,我有一个float / double变量。 当用cout打印时,结果字符串是以句点分隔的。 cout 3.1415 有一种简单的方法强制双面打印逗号? cout 3,1415 解决方案 imbue )code> code> code> code ..
发布时间:2016-10-14 12:41:04 C/C++开发

C ++处理超额精度

我目前正在查看执行多精度浮动的代码点算术。为了正确地工作,该代码需要将值在精确定义的点处降低到其最终精度。因此,即使中间结果计算为 80位扩展精度浮点寄存器,在某些时候它也必须则舍入为 64位double 用于后续操作。 代码使用宏 INEXACT 描述此要求,但没有完美的定义。 gcc手动提及 -fexcess-precision = standard 作为强制转换和赋值操作的精确定义的精 ..

什么是亚正规浮点数?

isnormal()参考页告诉您: 确定给定的浮点数arg是否正常,即 既不为零,也不为正,无穷大,也不为NaN。 数字为零,无限或NaN清楚什么意思。但它也说subnormal。在IEEE754标准中,浮点数用二进制科学记数法表示, = M × 2 e 。这里 M 是尾数, e 是指数。在数学上,您可以随时选择指数,以便1 。但是,由于在计算机表示中,指数只能具有有限范围是 ..
发布时间:2016-10-14 12:12:18 C/C++开发

Visual Studio C ++ 2008/2010 - 打破浮动NaN

有什么办法设置Visual Studio(只是从2008到2010年升级)破解,如果一个断言失败,每当任何浮点数变成NaN,QNAN,INF等等? 到目前为止,我刚刚使用了assert(x == x)技巧,但我宁愿隐式,所以我不必添加断言无处不在。 很奇怪,我通过google找不到这个答案。一些关于“浮点异常”的东西,但我不知道他们是否是相同的东西,我已经尝试启用他们在Visual S ..

浮点精度

我有一个用C#编写的程序,有些部分是用本地C / C ++编写的。 我使用双精度计算一些值,有时结果是错误的,因为太小的精度。经过一番调查,我发现有人将浮点精度设置为24位。我的代码工作正常,当我将精度重置为至少53位(使用_fpreset或_controlfp),但我仍然需要弄清楚谁负责将精度设置为24位在第一位。 解决方案 这是由默认的Direct3D设备初始化。您可以通过传递 D3 ..
发布时间:2016-10-14 11:26:19 C#/.NET

在产生NaN浮点数时停止调试器

我有一个C ++程序。在程序中的某处(难以再现,但可再现),一个caclculation导致浮点beeing设置为NaN。因为涉及NaN的浮点运算产生一个NaN,所以它的传播速度很快。 有任何方法可以设置编译器(gcc 4.4)或调试器)在浮点运算导致NaN时停止?这将是非常有用的。 谢谢! Nathan PS:可能有问题:我在ubuntu linux 10.10下工作。 ..
发布时间:2016-10-14 11:01:14 C/C++开发

我如何比较在C ++中log()和fp division的性能?

我在C ++中使用一个基于日志的类来存储非常小的浮点值(因为这些值超出了 double 的范围)。因为我正在执行大量的乘法,这有额外的好处是将乘法转换为和。 但是,在我的算法的某一点,我需要用一个整数值除一个标准的 double ,而不是一个 * = 到基于日志的值。我为我的基于日志的类重载了 * = 运算符,右侧的值首先通过运行转换为基于日志的值, log(),然后添加到左侧的值。 因此 ..
发布时间:2016-10-14 10:58:40 C/C++开发

设置默认精度C ++

我想在比较期间控制双精度,然后使用C ++恢复默认精度。 我打算使用 setPrecision()设置精度。 我正在做这样的事情 std :: setPrecision(math.log10(m_FTOL)); 我做一些事情,我想回来默认双重比较。 p> 我这样修改,仍然有一些错误 std: :streamsize prec = std : ..
发布时间:2016-10-14 10:37:31 C/C++开发

在C ++中浮动到二进制

我想知道是否有一种方法可以使用C ++中的char来表示浮点数。 例如: int main() { float test = char result = charRepresentation(test); return 0; } 我读到可能使用bitset我可以做,但我不漂亮肯定。 让我们假设我的float变量是01001010 010010 ..
发布时间:2016-10-14 10:29:46 C/C++开发