2009-01-31 205 views

回答

5

这取决于您对准确性的需求。如果您可以容忍来自IEEE存储浮点数的方法的典型错误,那么请使用浮点数,否则,如果您需要精确的表示形式(并且适用于任何不是您将使用的整数的数字在使用百分比的计算中)。

0

取决于你想要它的确切程度。如果你需要1或2位数字,并且你知道最大比率将会在maxint/1000以下,那么我会考虑把这个比率乘以100来存储一个整数。如果您需要确切的数字,您甚至可能希望将分子和分母作为单独的整数存储。否则,坚持浮动或双打。

0

我从来没有在数据库中使用浮点数,也许这是一个古老的技术已解决的习惯,我不是100%确定。

无论是ints,缩放整数还是小数。有时舍入误差似乎不重要,但可能会导致某些值的匹配失败或引入累积误差。

2

这取决于你的比例是什么,真的。

对于利率,例如在银行业务中,我们总是使用小数,其精度和范围由业务决定。如果要计算利率并且结果超出列的精度,那么始终存在业务规则,该规则定义如何对结果进行四舍五入或截断以适合列。

如果您的比例是,例如,一个对象的直径和它的周长之间的比例,我可能会使用浮动。

1

取决于您的应用程序。如果你正在使用浮点数来计算与这个比率有关的所有事情,那么将它作为浮点数来存储可能是有意义的。

但是,除此之外,浮点数通常会带有一点数据库异味。数据库管理员不喜欢他们,因为安装不准确意味着浮点数本质上不一致。这与我们心爱的ACID中的'C'一致性相抵触。

小数和缩放整数至少表现可预测。