postgresql 浮点数函数_PostgreSQL 浮点精度调整(extra_float_digits)

背景

之前写过一篇文章介绍PostgreSQL浮点类型存储值和表述值不一致带来的问题。

请参考:

浮点精度,在大多数平台中,float4精确到6位数字,float8精确到15位数字。

On most platforms, the real type has a range of at least 1E-37 to 1E+37 with a precision of at least 6 decimal digits. The double precision type typically has a range of around 1E-307 to 1E+308 with a precision of at least 15 digits.

使用extra_float_digits 参数最多可以增加3位精度。

语法方面,PostgreSQL兼容IEEE的用法。支持在float()中输入bit位。

代码如下,1到24个比特位表示float4,25到53个比特位表示float8:

src/backend/parser/gram.y

opt_float: '(' Iconst ')'

{

/*

* Check FLOAT() precision limits assuming IEEE floating

* types - thomas 1997-09-18

*/

if ($2 < 1)

ereport(ERROR,

(errcode(ERRCODE_INVALID_PARAMETER_VALUE),

errmsg("precision for type float must be at leas


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部