问题标签 [floating-point-precision]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
180 浏览

floating-point - 测量浮点误差?

例如,如果我以 pi 为例,找到一个从 1 到 1000 的随机数,然后将 pi 除以该数字。然后,将 pi 乘以该数字。

这会导致浮点错误吗?

(并且,处理器上可接受的错误是什么?)

0 投票
1 回答
1784 浏览

floating-point - TI 操作系统如何编码为不存在浮点错误?

我在我的图形计算器上进行了一次测试,以检查浮点错误,经过 48 小时的完全随机性,计算器没有丢失一个数字的精度。

TI 是如何实现这一目标的?

0 投票
4 回答
1133 浏览

linux - gcc double printf精度 - 错误输出

输出(预期如下):

这是在 Ubuntu 11.10 x64 上(但也在为 32 位编译时)。

我试图解决的问题是,在 Windows 上,它输出的数字与代码中的数字完全相同,我需要进行低级格式化 (swprintf) 才能像在 Windows 中一样工作,以解决可移植性问题。

0 投票
2 回答
4083 浏览

c++ - 为什么我的浮点值会丢失精度并丢弃小数?下面的示例代码

我以前从未真正使用过花车,而我正在从事的当前项目需要它们。我遇到了几年前了解到的奇怪问题,但已经忘记了为什么会发生这种情况。

我乘以或添加浮点数后的结果不是他们应该的。

这是我的代码:

0 投票
1 回答
294 浏览

visual-studio - 从 Visual Studio 或直接从 .EXE 启动时,OpenSURF 具有相同图像的不同输出

我开发了一个对象识别应用程序,使用 SURF 算法的 Chris Evans OpenSURF 实现。我正在做一些实验,我刚刚意识到,如果我通过 IDE 启动应用程序或直接双击 .exe 文件启动应用程序,算法表现不佳。我检查了 .exe 文件是我通过 IDE 启动的代码的二进制编译。从 IDE 或从 .EXE 启动应用程序时,浮点精度似乎有些不同,因为 SURF 算法是确定性的,相同的输入总是必须返回相同的输出。一些例子。第一列和第二列是从图像中提取的点数。第三列是第一列和第二列之间的差异。

EXE VS 差异

17340 17366 -26 图片001

4639 4631 8 图片002

3196 3189 7 图片003

10442 10441 1 图片004

1485 1477 8 图片005

5539 ​​5555 -16 图片006

18102 18073 29 图片007

如果算法和代码完全相同,任何人都可以告诉我为什么输出不同?

谢谢

0 投票
6 回答
60147 浏览

c - 如何将浮点值转换为具有精确精度的整数,如 123.3443 到 1233443?

示例代码:

0 投票
5 回答
1835 浏览

c++ - 常量赋值的浮点比较

在比较双精度数是否相等时,我们需要给出一个容差水平,因为浮点计算可能会引入错误。例如:

但是,如果我只是简单地分配一个常数值,而不进行任何计算,我还需要检查 epsilon 吗?

==比较够好吗?还是我需要再做fabs(x-y)<epsilon一次?分配时是否可能引入错误?我是不是太偏执了?

铸造 ( double x = static_cast<double>(100)) 怎么样?这也会引入浮点错误吗?

我在 Linux 上使用 C++,但如果它因语言而异,我也想理解这一点。

0 投票
1 回答
370 浏览

math - fractional binary subtraction

I am having difficulty understanding why the following binary subtraction gives the result that it does. I keep getting a different answer. I am trying to compute 0.1-x such that x is 0.00011001100110011001100. The answer should be 0.000000000000000000000001100[1100]...(1100 keeps repeating) When i do it, I keep getting 1100 in the very beginning.

What am I not doing correctly?

0 投票
1 回答
785 浏览

c# - 从 VB6 和 C# 调用 DLL 在双精度下的结果略有不同

我在 DLL 中有一个专有库(我没有代码),它在 VB6 中已使用多年。我正在尝试将 VB6 代码升级到 C#,并希望使 C# 代码完全复制 VB6 行为。当从每个环境调用时,我无法使在 DLL 中完成的某些计算的双精度结果完全匹配。

在VB6中我有这样的东西(注意文件读写是为了确保使用和生成完全相同的值):

在 C# 中,我有这样的东西:

我已经验证输入的读取方式相同(通过将二进制值重写到文件来验证),因此将相同的双精度数字提供给 DLL。输出值非常相似,但不完全相同(有时值在数字的最不重要部分是关闭的,在小数点后 15-17 位的噪音中,并且二进制写入文件验证它们是不同的二进制值) . 有没有人对为什么这些值的计算可能不完全相同或者我如何修复或调试这个有任何建议?

0 投票
2 回答
313 浏览

c++ - 双打会溢出吗?

是否可以使用双精度或浮点数溢出(环绕)?如果在 x86 或 x64 硬件上达到最大值(或最小值)会发生什么?