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

floating-point - 您将存储工程数据的计量单位是什么?

在我们的应用程序中,我们目前决定将所有工程数据存储在我们的 SI 数据库中。

我担心我们可能会冒在我们的数据库或 .NET 数字类型中没有足够精确度和准确性的风险。我还担心我们可能会看到浮点数学的伪像(尽管这可能是一个问题)。

例如,源数据可能是以 Psi(磅/平方英寸)表示的压力量(并从某些第 3 方服务中读取)。工程师会选择这种计量单位,因为(对于表示的数量)这将倾向于提供易于消化、人类可读的数字,而不需要科学记数法。

当我们“标准化”这个数字时,即当我们为了我们自己的持久性而转换这个数量时,我们可能会将它转换为 Pa(帕斯卡),这需要将这个数字乘以或除以某个其他可能很大的数字。

我们经常最终存储非常大或非常小的数字,更糟糕的是 - 我们可能会对这些数字进行进一步的计算。

目前我们使用ORACLE float 和System.Double。

人们对此有何看法?

更新

进一步的研究发现了即将推出的 F# 语言(在我写的 CTP 中)对度量单位的支持。

看来我们将能够让 F# 理解用户输入,例如:

我们还可以创建自己的派生单位和单位系统。

在 F# 中为牛顿创建派生单位
(来源:msdn.com

0 投票
5 回答
16958 浏览

algorithm - 如何最好地总结大量浮点数?

想象一下,您有大量各种大小的浮点数。计算总和的最正确方法是什么,并且误差最小?例如,当数组看起来像这样时:

然后你用一个简单的循环从左到右加起来,比如

每当您将较小的数字相加时,可能会低于精度阈值,因此误差会越来越大。据我所知,最好的方法是对数组进行排序并开始从最低到最高的数字相加,但我想知道是否有更好的方法(更快,更精确)?

编辑:感谢您的回答,我现在有一个工作代码可以完美地总结 Java 中的双精度值。它是来自获胜答案的 Python 帖子的直接端口。该解决方案通过了我所有的单元测试。(这里有一个更长但经过优化的版本Summarizer.java

0 投票
3 回答
27785 浏览

python - 浮点限制

我的代码:

我想显示a为浮点值。

由于a是一个字符串,我尝试了:

我得到的结果是:

我想要这个问题的解决方案。请帮助我。

我正在关注本教程

0 投票
3 回答
900 浏览

sql-server-2005 - SQL Server 2005 中的一个数字可以存储多少位?

我有一个来自 47306832975095894070.85314746810624532 的 Oracle 数据库的号码。当我将它带入 SQL Server 时,它肯定不会显示那么多数字。它显示为 4.73068329750959E+19,该字段定义为 FLOAT。

我认为这可能包括所有有效数字,但有人问我这个数字是否可以完全按照 Oracle 的方式存储。是否有另一种数据类型可以存储所有数字?SQL Server 2005 中有没有办法以非指数形式显示数字,而是显示所有存储的数字?

0 投票
6 回答
52619 浏览

tsql - T-SQL 小数除法精度

有谁知道为什么,使用 SQLServer 2005

给我11.74438969709659,

但是当我将分母上的小数位增加到 15 时,我得到的答案不太准确:

给我 11.74438969

0 投票
32 回答
4419958 浏览

python - 将浮点数限制为两位小数

我想a四舍五入到13.95

round功能无法按我预期的方式工作。

0 投票
5 回答
4762 浏览

java - “new BigDecimal(13.3D)”导致不精确的“13.3000000000000007105..”?

Java 怎么BigDecimal会这么痛苦?

是否存在需要结果 1 的情况?我知道 Java 1.5 改变了toString()方法,但这是预期的结果吗?

我也意识到BigDecimaldoubleValue()等,但我正在使用的库有用地使用 atoString()并且我无法改变它:-(

干杯。

0 投票
2 回答
852 浏览

c - GMP mpf_add 的精度丢失。我的数字哪里去了?

我将两个负浮点数相加:

根据 Perl,使用 bignum 和 Math::BigFloat,答案是

但是,根据 GMP,使用下面的代码,答案是

我哪里出错了?剩下的“14467412141”怎么了?

样本输出:

PS我尝试添加一个mpf_set_default_prec大于64(默认)值的调用,但没有效果。

0 投票
2 回答
39818 浏览

c++ - C++中long double的精度是多少?

有谁知道如何找出long double特定平台上的精度?我似乎在 17 位十进制数字后失去了精度,这与我刚使用double. 我希望得到更多,因为double在我的平台上用 8 个字节表示,而用long double12 个字节表示。

在你问之前,这是针对欧拉计划的,所以是的,我确实需要超过 17 位数字。:)

编辑:感谢您的快速回复。我刚刚确认在我的系统上使用只能获得 18 位十进制数字long double

0 投票
9 回答
78844 浏览

c# - 检查浮点值是否等于 0 是否安全?

我知道您通常不能依赖 double 或 decimal 类型值之间的相等性,但我想知道 0 是否是一种特殊情况。

虽然我可以理解 0.00000000000001 和 0.00000000000002 之间的不精确性,但 0 本身似乎很难搞砸,因为它什么都不是。如果你什么都不精确,那它就不再是什么了。

但我对这个话题了解不多,所以不由我说。

这总是会返回真实的吗?