问题标签 [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++ - 在 windows 上打印 long double
我使用 Microsoft Visual Studio 2010 和 Intel C++ Compiler XE 14.0。项目配置为“x64”。我需要使用long double
数据类型。我添加了一个编译选项/Qlong_double
并编写了一个测试示例:
输出:
长双尺寸:16,值:0,000000
资源的双倍值:1,414214
我发现问题在于 Windows 的标准 C 库不支持 long double。尝试使用 MPFR:
输出:
mpfr 长双:0
是否没有在 Microsoft Windows 上正确打印长双精度值的方法(包括低级方法)?也许我可以检索和打印单独的有效数字和指数?
升级版:
我写了一个例子来看看计算是否用 long double 执行:
输出:
计数长双:52
双数:52
这意味着工作是使用 double 而不是 long double 完成的(尽管/Qlong_double
设置了标志)。有哪些想法?
c++ - 在 c++ 中从 double 更改为 long double 不再给出正确的结果
为了提高准确性,我一直在尝试将程序从 double 升级到 long double。但是,我收到以下错误。
haread.cpp:178:43: 错误: '2.0e+0 * std::operator+ [with _Tp = long double](( (((const std::complex )KEp) + ( (long unsigned int)(((long unsigned int)i) * 32ul)))), ( (const std::complex )(& energia)
这条线是
phicheb[1][i] = (2.0*(KEp[i] + energia)/dE)-phistate[is][i] ;
数组是使用“新”动态定义的。所有变量都是 long double。当某个数字与复数数组相乘时,所有情况都会出现问题。因此,我将 2.0 更改为 2.0L 以及所有类似的情况。所以,现在编译成功了。但是,我的程序不再正常工作。我是否需要为我定义的所有长双打后缀 L?我将它们定义如下:
长双 xmin = 1.6 ; 长双 xmax = 7.0 ;
我什至不确定从哪里开始。有什么建议么?编译器是 gcc 版本 4.6.2 (SUSE Linux)。编辑:
这是代码的核心。它用于在网格上传播波函数。我将尝试尽可能少地解释代码。我有 phistate[0][i] 的值,它是对应于基态的波函数(其余状态均为零)。然后我计算系统的能量(使用傅里叶变换的动能和势能已经给出)。现在,使用一种特殊的方法(切比雪夫方法),我及时传播波函数。该方法基于递归关系。在此递归中,使用多项式展开计算传播。Chebc 是 long double 系数,其值定义明确。所有未显示定义的变量都是long double。
当我只使用双而不是长双时,我得到结果没有问题。当使用 long double 时,我的结果 phistate_new 具有 NaN 给出的所有值。
c++ - 在Eclipse Kepler,C++,(mac OS X)中输出到控制台时,如何更改双精度的显示值?
这是我的代码:
...这是我的输出:
等等。
有什么方法可以更改 IDE 设置,以便控制台显示双精度的所有元素?
或者也许这样输出显示到某个小数位,即 5 个小数位。
任何帮助将不胜感激,谢谢。
编辑:在这里回答:如何“计算”双精度值的正确小数位数?
c++ - 这个表达有什么问题?“如果(因子数组 [x]%2 == 0 && 因子数组 [x]%3 ==0...”
这是代码:
该代码是对 projecteuler.net 上的项目 3 的响应。我正在尝试使用 c++ 和常识的基本知识来找到 600851475143 的最大素数。
函数中发生错误void displayfactorresults
。
编译器输出错误信息:
“二进制表达式'long-double'和'long-double'的无效操作数”
python - Longdouble(1e3000) 变成 inf:我该怎么办?
(网络上的大多数其他相关问题都涉及 C 的 longdouble 和 python 之间的转换。这个问题是不同的。)
我不明白为什么我不能像这样在 python 中正确获得 longdouble:
看来我需要让我的 python 控制台知道 1e3000 是 longdouble 而不是 double。我怎样才能做到这一点
c++ - 将 long double 转换为 CString
我正在使用 unicode 设置构建 C++ MFC 项目,我通常使用函数 _ttof
转换CString
为 double 但我找不到long double
使用TCHAR
.
提前致谢。
c++ - 使用长双
以下是我的 C++ 程序。我想在变量上存储一个长数字,例如 pi,所以我尝试使用 long double。但是当我运行程序时它只显示 3.14159 。如何将完整的浮点数存储到变量中?
c - C - long double 和 printf 问题
我是新的 C 程序员,我正在做一个学校项目,我必须近似值或 pi。我的教授说我们必须使用 . 声明所有整数项long double
。控制台显示我询问用户给定函数的近似 pi 的项数。我输入 1 作为术语数,但代码返回 -0.00000000 而不是 4.00000000。
我在让它工作方面没有任何成功(虽然它适用于浮动)。我究竟做错了什么?(顺便说一句,我正在使用带有编译器的代码块。)
c++ - 赋值后 long double 重置为 0
我一直在修改 C/C++ 中的一些疾病模型,并希望从中获得更高的精度。我考虑过使用 long doubles 来获得 80 位精度(我使用的是 cygwin 的 GCC 4.8.3),但是在用它进行计算之后,我得到了一个“nan”(不是数字)输出值。这是我正在使用的代码。所有变量都是长双精度数。
输出的预期值:http: //pastebin.com/mJqkSVUf
c - 为什么这两个片段会产生不同的价值?
当我运行以下代码时:
输出是:
这两个数字不应该相同吗?更有趣的是,下面的代码:
产生:
那么为什么它们当时不同而现在相同呢?