Xin*_*Xin 5 postgresql floating-point precision sqldatatypes floating-point-precision
我很难理解float(p)PostgreSQL中的精度参数p .例如,float(1)并且float(24)似乎是完全一样的我.
有谁可以向我提供一些他们的差异的例子,好吗?
Cra*_*ger 18
它在手册中:
PostgreSQL还支持SQL标准符号float和float(p)来指定不精确的数字类型.这里,p指定二进制数字的最小可接受精度.PostgreSQL接受float(1)到float(24)选择真实类型,而float(25)到float(53)选择双精度.超出允许范围的p值会产生错误.未指定精度的浮点数表示双精度.
但是,这里的关键是它指定了可接受的最低精度.PostgreSQL使用它来选择满足要求的基础数据类型(float4或float8).
regress=> \x
Expanded display is on.
regress=> SELECT
'1.123456789123456789'::float,
'1.123456789123456789'::double precision,
'1.123456789123456789'::float(1),
'1.123456789123456789'::float(2),
'1.123456789123456789'::float(24),
'1.123456789123456789'::float(48);
-[ RECORD 1 ]------------
float8 | 1.12345678912346
float8 | 1.12345678912346
float4 | 1.12346
float4 | 1.12346
float4 | 1.12346
float8 | 1.12345678912346
Run Code Online (Sandbox Code Playgroud)
您可以使用pg_typeof确认类型选择.
实际上它只是支持标准语法,并通过选择适当的类型转换成PostgreSQL的方言 - 使用它.
| 归档时间: |
|
| 查看次数: |
21346 次 |
| 最近记录: |