问题标签 [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.

0 投票
1 回答
794 浏览

c# - C# 的任何等价物“扩展”?

我正在开发新版本的Mandelbrot 屏幕保护程序,但浮点精度已用完 - 简单的精度值没有足够的有效数字来满足我的需要。

更重要的数字 = 更高级别的分形放大

当我在 Delphi 7 中编写此屏幕保护程序的版本时,我使用了扩展的浮点类型,大小为 80 位。

在 .NET 中,我可以切换到decimal,但是这样做的性能非常糟糕,分形生成速度减慢了 20 倍左右。

.NET是否有任何等效的扩展?或者,是否有任何精度高于double的数字类型仍然使用 FPU 进行评估,因此没有decimal的高性能命中?

更新

我的屏幕保护程序已经设法将分形放大许多(许多!)数量级;目前,仅当使用的数字类型无法分隔相邻像素的纵坐标时,它才会重置为基本分形。双扩展改进带来的额外 16 位精度将使我的大小增加近 16 倍。

至于性能,我的算法已经设法消除了所需的 95-99% 的数学运算(与计算许多像素的简单实现相比),同时保留了分形的完整性。

0 投票
1 回答
1807 浏览

c++ - 删除双变量中的尾随零

我有一个 DLL,它定义了许多所有返回的方法,double我不想更改其中的任何内容。问题是当我将小数字传递给这些方法时,返回值带有太多尾随零double,例如返回值是9*9=810000000000(它不是小数点,它是 Double 变量的实际容量)。我想要正常的行为,即 9*9=81

如何在不更改 DLL 的情况下摆脱那些尾随零?

0 投票
1 回答
1209 浏览

c++ - 浮点数与双精度数的 C++ 精度数字

所以我理解C++中浮点数双精度数的区别。

double 只是一个双浮点数,而 float 是一个单浮点数(精度大小的两倍)。

我的问题是,为什么浮点数表示为“300000011920928955078125e-24”(对于值 3.0),但双精度数会简单地显示为 3.0?

为什么不双重显示所有尾随数字?它具有更高的精度,但仍然具有与浮点相同的有限精度,所以我不确定为什么它不会像那样显示。

0 投票
2 回答
9398 浏览

python - 如何让 Python 显示超过 50 个小数位?

我写了这个程序来计算 pi。它给了我 50 个小数位。我怎样才能获得更高的精度?

0 投票
3 回答
3836 浏览

c++ - 除零预防:检查除数的表达式不会导致零与检查除数不为零?

由于减法中的浮点错误,在以下情况下是否可能除以零?

换句话说,以下是否更安全?

0 投票
0 回答
155 浏览

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,那么我就不会遇到这个问题。

下面是渲染模型的示例场景:

http://imageshack.us/photo/my-images/15/distortion.png/

0 投票
3 回答
432 浏览

c# - Double.ToString() 如何显示比 Double 精度更高的字符?

a 如何Double.ToString()显示更多的精度(15-16)的字符(32)?

我希望这MyObject.ToString()代表MyObject而不是 MyObject+SomeTrashFromComputer

为什么

为什么

0 投票
3 回答
474 浏览

c++ - 如何提高代码的精度

如何提高以下准确性(精度)?

编辑:忘记添加这里有一个结构:

当您从十进制转换为度/分/秒,然后再转换回十进制时,您会得到 38.9134,而原始值为 38.898556。

0 投票
0 回答
360 浏览

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 修复了错误)

0 投票
1 回答
144 浏览

casting - Xcode中的计算结果错误

我有这个计算:

使用 Xcode 的结果是:2456227.250000 但它应该是:2456227.21492

你们知道我做错了什么吗?我似乎无法弄清楚。

提前致谢!