在我们的应用程序中,我们目前决定将所有工程数据存储在我们的 SI 数据库中。
我担心我们可能会冒在我们的数据库或 .NET 数字类型中没有足够精确度和准确性的风险。我还担心我们可能会看到浮点数学的伪像(尽管这可能是一个问题)。
例如,源数据可能是以 Psi(磅/平方英寸)表示的压力量(并从某些第 3 方服务中读取)。工程师会选择这种计量单位,因为(对于表示的数量)这将倾向于提供易于消化、人类可读的数字,而不需要科学记数法。
当我们“标准化”这个数字时,即当我们为了我们自己的持久性而转换这个数量时,我们可能会将它转换为 Pa(帕斯卡),这需要将这个数字乘以或除以某个其他可能很大的数字。
我们经常最终存储非常大或非常小的数字,更糟糕的是 - 我们可能会对这些数字进行进一步的计算。
目前我们使用ORACLE float 和System.Double。
人们对此有何看法?
更新
进一步的研究发现了即将推出的 F# 语言(在我写的 CTP 中)对度量单位的支持。
看来我们将能够让 F# 理解用户输入,例如:
9.81<n/s^2> // an acceleration
我们还可以创建自己的派生单位和单位系统。
(来源:msdn.com)