sau*_*rjk 3 database postgresql floating-point precision
我有一个postgresql数据库,并将其用于处理货币价值的项目.我的问题是:如何在postgresql表中将Double Precision或float8类型的列的十进制数限制为2?
Sor*_*row 15
只需使用Decimal(Numeric)类型,如手册中所述,例如cost decimal(10,2).
Decimal
Numeric
cost decimal(10,2)
第一个数字(10)定义数字的总长度(所有数字,包括小数点后的数字),而第二个数字(2)表示它们中有多少位于小数点后面.上述声明为您提供了8位数字.当然,你可以增加 - Numeric类型的限制要高得多.
在我看来,当您处理货币或其他与货币相关的价值时,无需使用浮点数.我不知道这两种类型之间的性能比较,但Decimal有一个优点 - 它是一个确切的数字(浮点数通常不是这种情况).我还建议阅读有关该主题的有趣但简短的讨论.
归档时间:
13 年,7 月 前
查看次数:
13035 次
最近记录:
7 年,6 月 前