6

在 Firebird DB 中:我读到了数字和小数之间的区别,但仍然不确定哪个更适合价格计算:小数还是不带舍入数字的数字?

4

2 回答 2

8

两者的实现NUMERICDECIMAL在 Firebird 中几乎相同。Interbase 6.0 数据定义指南说存在细微差别(因为NUMERIC精度与声明的完全相同,因为DECIMAL精度至少等于声明的)。根据Helen Borrie的 The Firebird Book,只有精度小于 5 的数字存在差异,因为NUMERIC精度 1-4 的 a 映射到精度 1-9 的SMALLINTa 。本书还说明了两者都符合SQL-92 类型的行为。DECIMALINTEGERNUMERICDECIMALDECIMAL

话虽如此,我建议选择DECIMAL,因为它的行为符合 SQL 标准中定义的行为,因此对于不熟悉 Firebird 但确实了解标准行为的人来说并不那么惊讶。

于 2012-12-30T14:12:26.170 回答
2

它们都同样适用于价格计算。但总会有某些类型的计算需要四舍五入,无论您使用哪一种。

十进制是两者中更灵活的。

于 2012-12-30T13:10:01.527 回答