问题标签 [double-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 投票
5 回答
1480 浏览

c++ - 用小数字代替零?

我一直在做一个矩阵类(作为一个学习练习),我在测试我的反函数时遇到了问题。

我这样输入一个任意矩阵:

并得到它来计算逆,我得到了正确的结果:

但是当我尝试将两者相乘以确保得到单位矩阵时,我得到:

为什么我会得到这些结果?我会理解如果我将奇怪的数字相乘,我可以理解一些舍入错误,但它所做的总和是:

这显然是 0,而不是 5.111512e-017

如果我手动让它进行计算;例如:

我按预期得到0?

所有数字都表示为双精度数。这是我的乘法重载:

和访问功能:

下面是求逆函数:

0 投票
3 回答
7003 浏览

java - java中双精度乘法的准确性?

java中双值乘法运算符的保证精度是多少?

例如,2.2 * 100 是 220.00000000000003,但 220 是双精度数。220.000000000000003 是 220 之后的下一个双倍。

0 投票
2 回答
661 浏览

javascript - 在Javascript中以非指数/短形式转换/表达双数

我在 Javascript 中有一个 double,其值为例如 1.0883076389305e-311。我想用以下形式表达它,例如使用“bc”实用程序来计算扩展/更高精度/比例形式:

我需要一个 Javascript bigint 库或代码来生成与数字的扩展/更高精度形式的字符串相同的输出。

谢谢!

0 投票
4 回答
16794 浏览

c++ - C++ 从二进制文件写入和读取双精度

我想为占用太多 RAM 的程序执行磁盘 I/O 操作。我使用双精度矩阵并认为将它们作为字节写入磁盘是最快的方法(我需要保留双精度)。

如何做到便携?

我找到了这段代码(here),但作者说它不是可移植的......

0 投票
1 回答
3232 浏览

c++ - C++ 从二进制文件中写入和读取双精度矩阵

在我之前的问题之后出现了一个新问题

我已扩展代码以执行矩阵二进制文件 I/O,并且在测试简单的读写操作时,我只检索了矩阵的第一行...

我没有设法找到我的错误,这是新代码:

提前致谢

0 投票
4 回答
7499 浏览

c++ - C++ 双精度和四舍五入

我有以下问题:

double a = 6.005; double b = 5.995;

例如,我想在点后设置双精度 2 位数

double c = a+b;// I would like to get 11.99 not 12.00.

我怎样才能做到这一点?

0 投票
2 回答
391 浏览

floating-point - 表示中的浮点错误?

当我做这个乘法

0.94 * 8700

输出是

8177.999999999999

但它应该是

8178

我正在使用 java ,但我认为这个错误与特定的编程语言无关,现在我的问题是......为什么会发生这种情况?
还有哪些其他数字(仅作为示例)会导致相同的错误?

0 投票
1 回答
837 浏览

c++ - 输出精度高于双精度

我正在打印来自 C++ 程序的一些数据,以由 ParaView 处理/可视化,但我遇到了浮点数问题。Paraview 支持 Float32 和 Float64 数据类型。Float64 相当于 double ,典型限制为 +/-1.7e +/- 308。但是,我的代码正在打印 6.5e-318 之类的数字。这会在读取数据时在 ParaView 中引发错误。我已经验证将这些小数四舍五入为零会使 ParaView 中的错误消失。我不确定为什么我有这样的“高精度”输出,可能是因为某些数字的存储精度比双精度高。例如,以下代码在我的系统上重现了相同的行为:

我的输出是:

我的系统是 Mac OS X Snow Leopard,我用 GCC 4.2和GCC 4.6 测试了上面的 flags-m32和(不确定这是否有用)。-m64-ffloat-store

实际上对我来说输出很好,但对 ParaView 来说不是。我只是想知道为什么我有这种差异。我很可能会忽略与浮点数相关的一些可能很重要的东西。您能否给我一些关于双打的输出/数值行为的线索?

0 投票
3 回答
745 浏览

c++ - 由于浮点数和双精度数有限而导致的错误

在 C++ 中,由于 float 和 double 的精度有限,我使用以下代码计算出误差的数量级:

(在双重情况下,我所做的只是在第 1 行和第 2 行用 double 交换浮点数)

现在,当我在 Unix 系统上使用 g++ 编译和运行它时,结果是

但是,当我在 Windows 7 上使用 MinGW 编译和运行它时,结果是

这是什么原因?

0 投票
1 回答
260 浏览

c++ - 精度 long double 比 double 差

当我使用时,long double我得到的精度比使用double. 3.14159265358979323846264Llong double const在源代码中编写好还是我应该添加其他内容L

编辑我解决了这个问题。我将算法更改为更精确。