越来越具体的十进制数对计算有什么影响

时间:2019-06-21 14:41:24

标签: c# .net vb.net

我正在编写一个数学函数来提供一个立方体的体积,以便获得物体的总重量,其中每平方英寸的重量为0.28361111111111109(存储为常数倍),这显然是非常具体的和精确的数字。

不过,回到问题所在,用这个数字计算方程而不是像0.28461这样的四舍五入形式,还是更困难?或者计算机处理计算的方式基本上没有区别吗?

精度是理想的选择,但并不以牺牲性能为代价。

这对我来说更适用于.NET框架,但可能更普遍地适用于编程。


对于代码而言,特别值得的是:

public var Weight
{
    get
    {
        double weight_per_square_inch = 0.28361111111111109;

        double volume = this.Length * this.Thickness * this.Width;

        return (volume * weight_per_square_inch) * this.Quantity;
    }
}

2 个答案:

答案 0 :(得分:2)

如果您提高精度,则双精度不会变慢,但可能不会在precision properly中保留小数点后17位。您需要查看其他类似Decimal的类型,它速度较慢但可以支持所需的高精度。

答案 1 :(得分:1)

如果需要精度,则可以更改为Decimal类型。当我们计算应用程序中的数百万个项目时,我看到了数字上的巨大差异。在进行大容量计算时,十进制值确实会产生影响。

但是,如果您需要性能,那么double将是最合适的选择。

由您决定要根据您的业务需求选择哪种类型。