问题标签 [long-double]

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 投票
1 回答
71 浏览

c++ - 为什么我不能素数超过一定数量级?

我正在尝试用 C++ 编写一个程序,它将素数具有 12 位数字。这是我的代码:

这(至少似乎)适用于较小的数字,但当我使用非常高的数字时它会崩溃。为什么是这样?我需要使用更大的整数类型吗?还是代码本身有问题?

0 投票
1 回答
151 浏览

c - 当 long-double 计算器失去精度?

我的任务是为在long double. 事实证明,在某个点之后,计算器会失去精度。例如,它计算正确9999999 ^ 2,但就99999999 ^ 2它产生的结果而言,它比它应该的大 1。我已经读过一些关于浮点精度的内容,但所有问题都与小数有关。我知道可以通过使用 gmp 库来修复它,但我的问题是:

有没有其他方法可以解决这个问题?
如何计算/显示长双精度计算器准确的点?

主程序

评估表达式.c

计算过滤器.c

0 投票
0 回答
63 浏览

floating-point - 是否可以检查正在使用的“long double”类型?

我希望应用程序能够知道它是否在“long double”类型是“double”的同义词、真正的 128 位 IEEE 四精度、80 位 Intel 扩展格式或“双双”。

是否可以在运行时检查这个?如何?

0 投票
3 回答
156 浏览

c++ - 解析长和双

我只有几行代码 C++ 波纹管:

它返回 2 个不同的值:

我无法理解发生了什么,我在 java 上遇到了这个错误,我也在 C++ 上尝试过,这就是问题所在。请帮助我(对不起我的英语不好)

0 投票
2 回答
8673 浏览

python - 如何获得 Python 长双字面值?

如何获得 Python 长双字面值?我试过了

但他们俩都回来了inf。这样做的正确方法是什么?

[编辑] 下面的答案说 long double 在某些平台上被视为 double 。在我的系统上不是这样。为了证明这一点,我尝试过:

在我的系统上(Mac OS 10.11)。它返回

[ EDIT2 ] 正如建议的那样,我刚刚尝试过

这使

在我的操作系统上。有关信息,我的 numpy 版本是 1.10.1。

0 投票
1 回答
468 浏览

c - 如何在 AT&T 汇编中将具有双精度的 80 位浮点数从内存移动到 XMM0

我编写了一个 AT&T 汇编函数来计算积分。我需要将它作为返回值传递,因为它是由用 C 编写的代码调用的。我已经成功地将它作为单精度float和双精度返回double。但我知道我可以以 80 位双扩展精度计算它,我很想将它传递给 C。

假设我要传递的值指向 TOP 指向的 FPU 寄存器。下面是我如何调用函数。

对于浮动:

双倍:

我现在的问题是:如何完成以下代码,以便 C 可以long double%XMM0寄存器中读取。

对于长双:

之后我该怎么办?我将如何将 80 位从 移动max%XMM0

0 投票
1 回答
2670 浏览

c - C 中 long double 的格式说明符 %Lf 未按预期工作

笔者一边从网上视频学习C要领,一边分享下面的代码,找出float、double和long double的区别。我在运行在 64 位 Windows 10 笔记本电脑上的 Eclispse 中运行了这个程序。

不知何故,我没有得到预期的输出。我已经添加了我在 Eclispse 控制台中得到的输出。谁能帮我弄清楚出了什么问题

0 投票
1 回答
44 浏览

double - 返回 long double 而不是 double

我正在用 C++ 编写一个程序,我想在其中找到我的电脑的 epsilon。我希望结果是双精度(即 2.2204460492503131 E-16),但输出是 1.0842 E-019,它是长双精度的 epsilon。

我的程序是这样的:

0 投票
1 回答
1554 浏览

c++ - 如何在计算机内存中打印长双精度的二进制表示?

long double由于某些原因,我必须打印数字的二进制表示。我想查看确切的格式,因为它保留在计算机内存中。

我经历了以下问题,其中采取 aunion是解决方案。对于float,备用数据类型unsigned int都是 32 位的。对于doubleunsigned long int因为两者都是 64 位的。但在 中long double,它是 96 位/128 位(取决于平台),没有类似的等效内存消耗者。那么,解决方案是什么?

访问问题:

  1. 在 C++ 中打印浮点数的二进制表示
  2. 双精度的二进制表示
  3. double 的精确二进制表示
  4. 如何显示浮点数或双精度数的二进制表示?

注意力:

它被标记为重复问题如何打印(使用 cout)数字存储在内存中的方式?

真的吗?提到的问题谈到了整数,并且接受的解决方案bitset只是截断了浮点部分。我的主要观点是浮点表示,它与该问题的内容无关。

0 投票
1 回答
64 浏览

c++ - 如果我试图用另一种语言复制程序。使用更高的精度是不明智的吗?

我正在将程序从 Scilab 代码转换为 C++,对我来说保持 Scilab 产生的结果至关重要。

我知道 Scilab 使用 IEEE 754 双精度,并且 C++ 双精度(尽管不是必需的)以类似的方式实现。

如果我试图完全匹配 Scilab 的结果,那么在 C++long double中使用更高的精度(例如)是一个坏主意吗?

例如: Scilab 是否有可能计算出一个数字为 0.1234,而在 C++ 中使用长双精度数时,该数字为 0.12345。因此可能会产生差异,导致两个程序产生不同的结果(尽管在 C++ 中更准确)。