问题标签 [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.
c++ - 为什么我不能素数超过一定数量级?
我正在尝试用 C++ 编写一个程序,它将素数具有 12 位数字。这是我的代码:
这(至少似乎)适用于较小的数字,但当我使用非常高的数字时它会崩溃。为什么是这样?我需要使用更大的整数类型吗?还是代码本身有问题?
c - 当 long-double 计算器失去精度?
我的任务是为在long double
. 事实证明,在某个点之后,计算器会失去精度。例如,它计算正确9999999 ^ 2
,但就99999999 ^ 2
它产生的结果而言,它比它应该的大 1。我已经读过一些关于浮点精度的内容,但所有问题都与小数有关。我知道可以通过使用 gmp 库来修复它,但我的问题是:
有没有其他方法可以解决这个问题?
如何计算/显示长双精度计算器准确的点?
主程序
评估表达式.c
计算过滤器.c
floating-point - 是否可以检查正在使用的“long double”类型?
我希望应用程序能够知道它是否在“long double”类型是“double”的同义词、真正的 128 位 IEEE 四精度、80 位 Intel 扩展格式或“双双”。
是否可以在运行时检查这个?如何?
c++ - 解析长和双
我只有几行代码 C++ 波纹管:
它返回 2 个不同的值:
我无法理解发生了什么,我在 java 上遇到了这个错误,我也在 C++ 上尝试过,这就是问题所在。请帮助我(对不起我的英语不好)
python - 如何获得 Python 长双字面值?
如何获得 Python 长双字面值?我试过了
和
但他们俩都回来了inf
。这样做的正确方法是什么?
[编辑] 下面的答案说 long double 在某些平台上被视为 double 。在我的系统上不是这样。为了证明这一点,我尝试过:
在我的系统上(Mac OS 10.11)。它返回
[ EDIT2 ] 正如建议的那样,我刚刚尝试过
这使
在我的操作系统上。有关信息,我的 numpy 版本是 1.10.1。
c - 如何在 AT&T 汇编中将具有双精度的 80 位浮点数从内存移动到 XMM0
我编写了一个 AT&T 汇编函数来计算积分。我需要将它作为返回值传递,因为它是由用 C 编写的代码调用的。我已经成功地将它作为单精度float
和双精度返回double
。但我知道我可以以 80 位双扩展精度计算它,我很想将它传递给 C。
假设我要传递的值指向 TOP 指向的 FPU 寄存器。下面是我如何调用函数。
对于浮动:
双倍:
我现在的问题是:如何完成以下代码,以便 C 可以long double
从%XMM0
寄存器中读取。
对于长双:
之后我该怎么办?我将如何将 80 位从 移动max
到%XMM0
?
c - C 中 long double 的格式说明符 %Lf 未按预期工作
笔者一边从网上视频学习C要领,一边分享下面的代码,找出float、double和long double的区别。我在运行在 64 位 Windows 10 笔记本电脑上的 Eclispse 中运行了这个程序。
不知何故,我没有得到预期的输出。我已经添加了我在 Eclispse 控制台中得到的输出。谁能帮我弄清楚出了什么问题
double - 返回 long double 而不是 double
我正在用 C++ 编写一个程序,我想在其中找到我的电脑的 epsilon。我希望结果是双精度(即 2.2204460492503131 E-16),但输出是 1.0842 E-019,它是长双精度的 epsilon。
我的程序是这样的:
c++ - 如何在计算机内存中打印长双精度的二进制表示?
long double
由于某些原因,我必须打印数字的二进制表示。我想查看确切的格式,因为它保留在计算机内存中。
我经历了以下问题,其中采取 aunion
是解决方案。对于float
,备用数据类型unsigned int
都是 32 位的。对于double
,unsigned long int
因为两者都是 64 位的。但在 中long double
,它是 96 位/128 位(取决于平台),没有类似的等效内存消耗者。那么,解决方案是什么?
访问问题:
注意力:
它被标记为重复问题如何打印(使用 cout)数字存储在内存中的方式?!
真的吗?提到的问题谈到了整数,并且接受的解决方案bitset
只是截断了浮点部分。我的主要观点是浮点表示,它与该问题的内容无关。
c++ - 如果我试图用另一种语言复制程序。使用更高的精度是不明智的吗?
我正在将程序从 Scilab 代码转换为 C++,对我来说保持 Scilab 产生的结果至关重要。
我知道 Scilab 使用 IEEE 754 双精度,并且 C++ 双精度(尽管不是必需的)以类似的方式实现。
如果我试图完全匹配 Scilab 的结果,那么在 C++long double
中使用更高的精度(例如)是一个坏主意吗?
例如: Scilab 是否有可能计算出一个数字为 0.1234,而在 C++ 中使用长双精度数时,该数字为 0.12345。因此可能会产生差异,导致两个程序产生不同的结果(尽管在 C++ 中更准确)。