pg中的数字类型总结
pg中的数字类型如下表:
名字 | 存储尺寸 | 描述 | 范围 |
---|---|---|---|
smallint
|
2字节 | 小范围整数 | -32768 to +32767 |
integer
|
4字节 | 整数的典型选择 | -2147483648 to +2147483647 |
bigint
|
8字节 | 大范围整数 | -9223372036854775808 to +9223372036854775807 |
decimal
|
可变 | 用户指定精度,精确 | 最高小数点前131072位,以及小数点后16383位 |
numeric
|
可变 | 用户指定精度,精确 | 最高小数点前131072位,以及小数点后16383位 |
real
|
4字节 | 可变精度,不精确 | 6位十进制精度 |
double precision
|
8字节 | 可变精度,不精确 | 15位十进制精度 |
smallserial
|
2字节 | 自动增加的小整数 | 1到32767 |
serial
|
4字节 | 自动增加的整数 | 1到2147483647 |
bigserial
|
8字节 | 自动增长的大整数 | 1到9223372036854775807 |
如果需要以极高的精度处理数据,或者以精确的精度存储数据,那么就使用numeric类型,它没有范围限制和精确的存储,代价是存储大小和处理速度,numeric
类型上的算术运算比整数类型或者浮点数类型要慢很多。
对于定长的数字类型,类型越小,数据在磁盘和内存中占用的空间越小,同时,类型越小,可以存储的值范围越窄。而对于整数类型,较小的类型意味着较小的范围。
对于浮点类型,较小的类型表示精度较低。
”神奇“的四舍五入:
test=# SELECT 3.0::float8 * (1.0/5.0);?column?
--------------------0.6000000000000001
(1 row)
test=# SELECT 3.0::float8 * (1.0/5.0) <= 0.6;?column?
----------f
(1 row)
当系统处理货币时,对计算中的小偏差和适当舍入表示无法接受。精确的数学得出精确的结果。
test=# SELECT 3.0::numeric * (1.0/5.0);?column?
-------------------------0.600000000000000000000
(1 row)
所以官方文档也标明,进行精度要求高的计算时使用numeric类型。
这是因为numeric类型的舍入行为“远离零”,而double percision和float的舍入行为是“接近最近的偶数值”。
test=# SELECT x,
test-# round(x::numeric) AS num_round,
test-# round(x::double precision) AS dbl_round
test-# FROM generate_series(-3.5, 3.5, 1) as x;x | num_round | dbl_round
------+-----------+------------3.5 | -4 | -4-2.5 | -3 | -2-1.5 | -2 | -2-0.5 | -1 | -00.5 | 1 | 01.5 | 2 | 22.5 | 3 | 23.5 | 4 | 4
(8 rows)
pg中的数字类型总结相关推荐
- python中的数字类型格式与运算_Python中的数字类型格式与运算
出品 Python中的数字(Digital)与数学中的数字相同,可以通过各种各样的运算符实现各种计算,在Python中数字类型的数据格式分为以下几种: 1.整数型(integer) 2.浮点数(flo ...
- HTML5中的数字类型的输入框:数字选择器
HTML5中的数字类型的输入框:数字选择器 html5 Input类型有如下几种: color.date.datetime.datetime-local.email month.number.rang ...
- Java中number数字类型的转换_Java下数字类型的转换 (转)
Java下数字类型的转换 (转)[@more@] 作者:家居猫 各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数 ...
- python中加减乘除是什么数据类型_python中,数字类型计算
说明: 今天在看python数字类型的操作,在此记录下. 操作过程: 1.数字的加减乘除 >>> 2 + 2 4 >>> 4 - 2 2 >>> ...
- html文本框最小数字,HTML5中的数字类型的输入框:数字选择器
要求用户输入数字要比输入Email地址或者网址的情况麻烦得多.比如,是要求用户输入具体的-1呢?还是1~10范围内的数字,是要求 输入7呢?还是小数又或者是圆周率...怎么样,也许你已经感觉到麻烦了吧 ...
- mysql数字_MySQL 中的数字类型
MySQL 中数据类型常用的就三大类: 数字类型/numeric types 日期和时间/date and time types 字符类型/string (character and byte) ty ...
- Foundation框架中的数字类型:NSNmuber(二)
看官们,我们在上一章回中对NSNumber类型做了详细的分析,本章回中我们将给出完整的代码,请大家参考: #import<Foundation/Foundation.h>int main( ...
- Java 中各数字类型(Double, Float, Long, Integer) 之间以及字符串之间的转换
1. 数字类型间的转换 类型 double, float, long, int 都是 Java 中原始的数字类型. Java 提供了这原始类型的包装类, 并提供了一些便于使用的方法比如类型的转换, 通 ...
- python中的数字类型格式与运算,python数字数据类型
python数字数据类型 1. 数字 在我们很小的时候,父母便开始教我们数数,从1数到10,聪明的孩子可以数的更多. python支持3中数值类型 整型(int),通常称之为整型或整数,这个概念与我们 ...
最新文章
- 科学家都解决不了的5个“简单”算法,你不来看看?
- SQLServer中Case的用法
- 修改Idea默认的全局设置,如Maven等
- mysql某月按小时统计数据_Mysql按周,按月,按日,按小时分组统计数据
- CodeForces - 1324F Maximum White Subtree(树形dp)
- 去杠杆高歌猛进,借呗会倒闭吗?
- arcgis镜像图形工具,ArcGis图形编辑
- Win11系统如何打开地雷游戏 Win11打开扫雷游戏的教程
- opencv引起的、破坏了电脑系统环境变量的处理办法
- 从零开始学androidBroadCast广播.四十五.
- 分享一个关于跨境电商的竞品分析报告
- 如何用photoshop做24色环_PS色相环制作方法和教程
- 2013年度中国优秀开源项目入围奖
- android开发apk捆绑,Android 下 APK 捆绑器的实现
- Supported media formats (支持的媒体格式)
- Python如何利用双色球每天薅个煎饼果子
- EdgeInsets.symmetric()
- 参加国企面试需要注意的点有哪些?
- STM32中文参考手册下载地址
- 树莓派3 基于Ubuntu mate 16.04的调用中文输入法
热门文章
- 第六课 利用站群赚钱的思路分析
- 互联网晚报 | 中电科确认不存在临时工情况,单位已报案;360董事长周鸿祎1年内没有减持计划;LV老板登顶福布斯,中国首富还是他...
- beta应用程序ios_通过构建简单的食谱应用程序来了解iOS最佳做法
- 如何设计一个高性能网关?
- 2022浙江省税务系统事业单位招聘仿真试题及答案(多选题)
- 战地3服务器网络不显示,战地3今天更新了?发现服务器进不去了,贴个官方消息。...
- 上传文件报413 Request Entity Too Large错误解决办法
- 实战:拆解拼多多13个拉新裂变的环节 小程序的增长套路
- Attention Is All You Need (NIPS 2017)
- gg修改服务器钻石,六号特工GG修改金钱、钻石和基因等教程+免广告版本