我知道这是一种“精确”的数据类型,尽可能准确地表示数字,以便不会出现诸如或数据类型numeric
之类的浮点错误。float
real
但是呢numeric(p,s)
?由于固定比例,它必须近似于一个数字,但它是否存在浮点不准确性,或者它是“安全的”?我找不到有关它的任何信息。也许这是显而易见的,但我想更好地理解这方面。
我知道这是一种“精确”的数据类型,尽可能准确地表示数字,以便不会出现诸如或数据类型numeric
之类的浮点错误。float
real
但是呢numeric(p,s)
?由于固定比例,它必须近似于一个数字,但它是否存在浮点不准确性,或者它是“安全的”?我找不到有关它的任何信息。也许这是显而易见的,但我想更好地理解这方面。
numeric(p,s)
是准确的。它是“二进制编码的十进制”,也就是说,数字按原样存储。请参阅中的定义src/backend/utils/adt/numeric.c
: