问题标签 [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 投票
0 回答
57 浏览

c++ - 如果我有两个使用双打产生相同输出的程序,我可以假设这两个程序是相同的吗?

我正在编写一个 C++ 程序,并试图修复一个错误,我已将我的主程序的一部分隔离到一个单独的文件中。我将调用主程序Prog1和分离的部分Prog2

我已经成功地找到并修复了 Prog2 中的错误,并将更改复制到 Prog1。当我运行所有程序时,两个程序输出相同的结果IFF我在两个程序中使用的唯一数据类型是 type double

我希望将所有双打更改long double为提高精度,但这样做时,Prog1 的输出与 Prog2 略有不同。

我的想法是这是一个提升问题,因为 Prog1 中的某些计算使用长双精度数,而在 Prog2 中我偶尔只使用文字。例如:

程序1:

程序2:

value1和的结果value2将不完全相等(请参阅:浮点数学是否损坏?)。

现在我可以将两个程序中的每个文字都更改为类型long double(例如1.0L),然后查看输出是否匹配,但不幸的是,说起来容易做起来难(有很多)。

所以我的问题是:

由于我的两个程序的输出在使用双打时完全匹配,如果 Prog2 是,那么假设 Prog1 正常运行是否安全?即使使用长双打时结果不同?

0 投票
2 回答
545 浏览

c++ - Output long double to console

I tried to output a long double to the console directly using qDebug() and indirectly via QString::number() but both do not accept long double.

Is it true that there is no easy way of printing a long double floating point number to the console using Qt? Why?!

0 投票
3 回答
1050 浏览

python - Python:读取 float80 值

我有一个 10 字节(80 位)Little Endian 浮点值(或float80)的数组。我如何在 python 3 中读取这些值?

该软件包struct不支持float80(可能是我不小心阅读了文档)。

与“struct”包array相同的包不支持float80.

numpy支持float128float96类型。这非常好,但是附加\x00在尾部float80以将其扩展到float96或者很难看float128,导入这个包需要很多时间。

该软件包ctypes支持c_longdouble. 它比 numpy 快很多倍,但是sizeof(c_longdouble)依赖于机器并且可以少于 80 位,附加\x00在尾部float80以将其扩展到c_longdouble也很丑陋。

更新 1:在我的gist.github测试代码。该功能decode_str64很丑陋,但它确实有效。现在我正在寻找正确的方法

0 投票
1 回答
862 浏览

c++ - C++ fabs(long double) 编译器警告

我想要 a 的绝对值long double

根据<cmath><math.h>,可获得以下信息:

但是,在执行时long double ld = fabs(static_cast<long double>(0));,我收到以下警告(LLVM 7.1):

Absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value

怎么来的?

还有什么其他方法可以获得 a 的绝对值long double

编辑:

std::abs最终完成了这项工作。然而,std::fabs没有。正如评论中指出的那样,这可能是由于不符合要求的实施。

0 投票
3 回答
305 浏览

java - Java 的 BigDecimal 是否利用了 C++ 中的 long double 等硬件架构?

据我了解,C++ 中的 long double 实际上利用了硬件架构(至少对于某些架构而言)。Java 中的 BigDecimal 是否对足够小的输入执行此操作?

0 投票
0 回答
54 浏览

c - C - Long double 最小值和最大值

long double 的 min 和 max 值与 double 一样是否正确?它们彼此使用 8 个字节,最大值约为 E308 (10^308)。Long double 应该使用 16byte 并到达 >E4000,不是吗?还是取决于电脑?我使用宏 LDBL_MAX 和 sizeof 关键字(用于字节占用)检查​​这些值。这是正常的还是我犯了一些错误(比如在格式说明符中 - 我使用 %Le 打印)?啊,我用Visual Studio 2015编译执行。谢谢!

0 投票
3 回答
2501 浏览

c - 在 C 上定义 LDBL_MAX/MIN

我正在使用 C,我必须做一个练习,我必须打印long double minand的值long double max

我用作float.h标题,但是这两个宏 ( LDBL_MIN/MAX) 给了我相同的值,就好像它只是一个双精度。

我正在使用 Visual Studio 2015,如果我将鼠标悬停在LDBL MIN它上面会显示#define LDBL_MIN DBL_MIN. 这就是它打印dbl_min而不是打印的原因ldbl_min吗?

我该如何解决这个问题?

LDBL这是一个问题,因为我的作业需要和的两个不同值DBL

0 投票
1 回答
270 浏览

c - Nasm:如何从内存中将 long double 加载到 FPU

我正在用 nasm 编写一个函数,该函数将从 32 位 ansi C 调用。

C 中的函数原型如下所示: long double scalar(int n, long double *x) 其中 x 是指向long doubles.

当我尝试将单个加载long double到 FPU 时会出现问题:

我应该如何指定尺寸?我的 C 编译器使用 12 字节的长双精度,如何将其放入 80 位?

0 投票
2 回答
110 浏览

c++ - 将长双字面后缀附加到 C++ 中的用户输入

我有一个具有长双向量的类:

我重载了输入运算符,我从用户那里获取输入,然后将其推入向量中。我遇到的问题是,如果用户输入的数字超出了 double 的范围,则代码应该将 long double 后缀附加到输入中,而用户也没有。这是我到目前为止所尝试的:

我想过使用scanf,但我不确定在重载输入运算符时使用它有多安全。

0 投票
2 回答
3652 浏览

c++ - C++非常小的浮点数,精度

我正在处理一个使用非常少量的 10^-15 到 10^-25 的代码。我尝试使用doublelong double但我得到了错误的答案,因为要么被0.000000000000000000001四舍五入,要么0像.0.000000000000000020.00000000000000001999999999999

由于即使是 1/1000000 的一小部分也会对我的最终答案产生巨大影响,是否有适当的解决方法?

预期的输出应该是:

但是,我得到的输出是:

我试过了doublelong double甚至boost_dec_float,但我得到的输出是相似的。