问题标签 [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.
c# - 放大时的双精度问题
我有这个算法可以计算点 (x0,y0) 的 mandelbrot 值(我认为 x0 和 y0 介于 -1 和 1 之间,不是很重要)。scale
当不是太大时,这一切都很顺利,但是在较高的值时scale
,返回的值非常不准确,我的图形输出开始变得怪异。我如何预测scale
会发生什么价值?
arm - GCC 使用 ARM VFP 指令操作的正确内联汇编约束是什么?
我想使用 Google NDKv8b 附带的工具链 (gcc-4.6) 将双精度寄存器 (d8) 的值加载到 ARM 平台上的 C 变量中。我的 ARM 机器是三星 Galaxy S2(它有 VFPv3 和 NEON)。GCC 文档说,为了在内联汇编中使用 VFP 双精度寄存器,必须使用“w”约束。所以我尝试了这样的事情(好吧,不要过多地研究整个程序的逻辑):
好吧,它甚至没有编译:
我怎样才能做到这一点?
谢谢!
numerical-methods - 二分法失去精度
我已经有一段时间没有出现在这个非常好的论坛上了。我正在学习数值分析课程,我被要求编写二分法,这是我的代码
我唯一的问题是,当x = 0.354492时找到了根,而真正的根在x=1/3中,所以实际上我的双精度或容差不好。我不知道如何改进此代码以获得更好的结果。任何想法?
c++ - stringstream setprecision 和浮点格式
我想知道 std::stringstream/precision 如何格式化浮点数。似乎如果精度参数优于16
非小数位数的负数,这会导致表格格式"2369.000133698999900"
而不是“好”"2369.00013369900"
即使我没有告诉它对(如作为参数传递给函数)进行四舍五入,如何std::stringstream
知道它8999900
必须恢复为一个?但不要为高于 12 的参数执行此操作9
8
12
setprecision
c++ - 将 2^31 分配给浮点数或双精度数
我必须将一个整数值乘以 2^31。我用谷歌搜索了它,看起来双打的范围在 2.23e-308 <= |X| 之间 <= 1.79e308 使用 64 位,浮点数介于 1.18e-38 <= |X| <= 3.40e38。
这比我需要的要多得多。但它不起作用。
我的头文件中有这个常量值:
如果那时我只是这样做:
那么,dummy 的值为 11。
我不知道问题是否在于分配这样的常量值,但我不知道如何在不丢失精度的情况下编写它。
有什么帮助吗?
编辑:对不起,愚蠢的问题。我的 MatLab 背景背叛了我,忘记了 ^ 不适用于 C++ 中的求幂。我已经投票关闭。
c++ - 在有限差分法中使用的最佳 epsilon/dx 值是多少?
使用有限差分法进行推导时,选择最佳dx
值至关重要。在数学上,dx
必须尽可能小。但是,我不确定选择最小的正双精度数(即 2.2250738585072014 x 10 -308)是否是正确的选择。
是否有最佳数值区间或精确值可供选择dx
以使计算误差尽可能小?
(我使用的是 64 位编译器。我将在 Intel i5 处理器上运行我的程序。)
gdb - gdb 中的四边形
我正在使用 gdb 进行调试,发现四倍精度数字显示不正确。我正在测试的代码是:
(注意 extern 以解决 libquadmath 错误。)
我编译: g++ aC -g -lquadmath
然后我得到:
这似乎是一个 gdb 错误,因为最终结果似乎还可以。我的问题只是这是否应该工作?gdb 是否支持四边形?在这些情况下,我是否需要做一些特别的事情才能让 gdb 工作?
该程序的重点是演示灾难性取消,并且使用 sinh 提供所需的(双精度)精度,而无需四元算术:
谢谢!
PS:无法使用四倍精度进行标记,我没有足够的声誉来创建新标签。
java - Java - 一次双加/减法中的最大精度损失
在java中处理两个double
值(加/减)时,是否可以粗略地确定最大精度损失是多少?最坏的情况可能是两个数字不能准确表示,然后对它们执行操作,这导致一个值也不能准确表示。
java - 将双精度数字放入数组中,然后从低到高排序并显示数字
在第 24 行,我收到一个被注释掉的错误。是什么原因造成的,我该如何解决?
任何帮助深表感谢。提前谢谢。:)
java - 使用 DecimalFormat 格式化 Double 以在没有科学计数法的情况下打印
我一直在从传感器读数中读取时间戳值,但由于它们以纳秒为单位提供,我想我会将它们转换为双倍并进行转换。结果数字是一个 17 位的值,加上分隔符。
尝试直接打印它会导致科学记数法,这是我不想要的,因此我使用 DecimalFormat 类将其输出到小数点后 4 位的预期值。问题是,即使调试器显示了 17 位十进制数字,即使在“doubleValue()”调用之后,输出字符串也显示了 15 位数字。
代码:
我认为这可能是一个 android 精度问题,但调试器的格式化程序也显示了错误的精度。我已经在本地 java 程序中对此进行了测试,两个调用的位数相同。
这是 DecimalFormat 错误/限制吗?还是我做错了什么?