问题标签 [floating-point-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# - C# 的任何等价物“扩展”?
我正在开发新版本的Mandelbrot 屏幕保护程序,但浮点精度已用完 - 简单的双精度值没有足够的有效数字来满足我的需要。
更重要的数字 = 更高级别的分形放大
当我在 Delphi 7 中编写此屏幕保护程序的版本时,我使用了扩展的浮点类型,大小为 80 位。
在 .NET 中,我可以切换到decimal,但是这样做的性能非常糟糕,分形生成速度减慢了 20 倍左右。
.NET是否有任何等效的扩展?或者,是否有任何精度高于double的数字类型仍然使用 FPU 进行评估,因此没有decimal的高性能命中?
更新
我的屏幕保护程序已经设法将分形放大许多(许多!)数量级;目前,仅当使用的数字类型无法分隔相邻像素的纵坐标时,它才会重置为基本分形。双扩展改进带来的额外 16 位精度将使我的大小增加近 16 倍。
至于性能,我的算法已经设法消除了所需的 95-99% 的数学运算(与计算许多像素的简单实现相比),同时保留了分形的完整性。
c++ - 删除双变量中的尾随零
我有一个 DLL,它定义了许多所有返回的方法,double
我不想更改其中的任何内容。问题是当我将小数字传递给这些方法时,返回值带有太多尾随零double
,例如返回值是9*9=810000000000
(它不是小数点,它是 Double 变量的实际容量)。我想要正常的行为,即 9*9=81
如何在不更改 DLL 的情况下摆脱那些尾随零?
c++ - 浮点数与双精度数的 C++ 精度数字
所以我理解C++中浮点数与双精度数的区别。
double 只是一个双浮点数,而 float 是一个单浮点数(精度大小的两倍)。
我的问题是,为什么浮点数表示为“300000011920928955078125e-24”(对于值 3.0),但双精度数会简单地显示为 3.0?
为什么不双重显示所有尾随数字?它具有更高的精度,但仍然具有与浮点相同的有限精度,所以我不确定为什么它不会像那样显示。
python - 如何让 Python 显示超过 50 个小数位?
我写了这个程序来计算 pi。它给了我 50 个小数位。我怎样才能获得更高的精度?
c++ - 除零预防:检查除数的表达式不会导致零与检查除数不为零?
由于减法中的浮点错误,在以下情况下是否可能除以零?
换句话说,以下是否更安全?
xna-4.0 - XNA 大坐标和浮点精度
我在 Autocad 中以 .dwg 文件的形式在大坐标中创建了我的模型,例如(X = 528692.833,Y = -261.184,Z = 1.890)。当模型导出到 .Fbx 文件时,变形出现在 FBX 查看器中,同样的情况发生在带有转换后的 .Xnb 文件的 XNA 中。
我无法理解的是,为什么当模型在 XNA 框架中使用 World 矩阵围绕原点转移时问题仍然存在。问题与浮点精度有关吗?因为 XNA api 仅适用于浮点数。或者 .Xnb 文件有什么问题吗?
除了在 Autocad 中围绕原点移动模型之外,还有哪些可能的解决方法?
编辑:
我还意识到,如果使用简单的着色器而不是 BasicEffects,那么我就不会遇到这个问题。
下面是渲染模型的示例场景:
c# - Double.ToString() 如何显示比 Double 精度更高的字符?
a 如何Double.ToString()
显示更多的双精度(15-16)的字符(32)?
我希望这仅MyObject.ToString()
代表MyObject而不是 MyObject+SomeTrashFromComputer
为什么
但
为什么
但
c++ - 如何提高代码的精度
如何提高以下准确性(精度)?
编辑:忘记添加这里有一个结构:
当您从十进制转换为度/分/秒,然后再转换回十进制时,您会得到 38.9134,而原始值为 38.898556。
precision - libquadmath 和 GNU-gsl ode 求解器?
在求解 ODE 时,我想要 40 位或更多小数位的工作精度。谁能告诉我是否可以使用 gsl ODE 求解器(也许使用 libquadmath)获得更高精度的结果?从http://www.gnu.org/software/gsl/manual/gsl-ref.html#Driver的 gsl_odeiv2 文档中可以看出,它们只需要双打,但真的是这样吗?
如果没有,有人可以提出替代方案吗?'odeint' 之类的东西是否支持高于双精度?我必须从头开始编写自己的吗?
(作为参考,我的具体问题是:Writing Runge-Kutta ODE solver using gsl,现在由于 Daniel Fischer 修复了错误)
casting - Xcode中的计算结果错误
我有这个计算:
使用 Xcode 的结果是:2456227.250000 但它应该是:2456227.21492
你们知道我做错了什么吗?我似乎无法弄清楚。
提前致谢!