gpt4 book ai didi

floating-point - 您将使用什么计量单位来存储工程数据?

转载 作者:行者123 更新时间:2023-12-04 06:46:19 25 4
gpt4 key购买 nike

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

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

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

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

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

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

人们对此有何看法?

更新

进一步的研究发现了即将推出的 F# 语言中的 Units of Measure support(在我写的 CTP 中)。

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

9.81<n/s^2> // an acceleration

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

creating a derived unit for Newtons in F#
(来源: msdn.com )

最佳答案

牢记重要数字——测量的准确性。如果 PSI 已知只有整磅,那么转换为 Pa 后有 15 位小数,仍然只有一位有效数字。

精度与精度不同,在工程单位上执行浮点运算需要在操作期间考虑到这一点 - 不要存储比测量精度更高的精度,不要在计算中使用比已知精度更高的精度。

编辑:

您还可以考虑使用 NUMERIC(p,s),其中可以明确指定精度(位数)和小数位数(小数点右侧的位数)。

如果这不是一个选项,请考虑保留特定测量的准确性,以便可以报告和/或在计算中使用它。

关于floating-point - 您将使用什么计量单位来存储工程数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com