数值型数据有几种数字格式

2 02 3 年,我的一个朋友正在研究VF系统,向我询问四种主要的数值数据格式。
我向他解释:
1 整数:这是一个没有小数位的数字,可以是正数也可以是负数。
例如,1 2 3 、-4 5 6
2 浮点数类型(Float/Real):它有整数和小数部分,表示带小数的值。
例如,1 2 3 .4 5 、-6 7 8 .9 0。

3 双精度浮点数类型:比浮点数精度更高,取值范围更广。
适用于需要高精度的计算,例如科学计算和财务分析。

4 货币:专门用于表示货币价值,通常保留四位小数,以确保货币金额的准确表示。
例如,1 2 3 4 5 .6 7 8 9 可能显示为 1 2 3 4 5 .6 8
这些格式各有特点,因此根据不同的应用场景选择合适的格式很重要。
对了,他还问了货币数据的格式,我给他举了一个例子。
他的声音里带着满足。
算了,你自己会解决的。

数据库数值型数据宽度

我记得有一次,当我帮助一位朋友调试数据库时,他问我为什么 INT(1 1 ) 字段不能容纳 1 2 位数字。
我打开MySQL文档查了半天,发现这个产品的显示宽度和实际存储没有关系。
INT只有4 个字节,它能存储的最大值是2 1 4 7 4 8 3 6 4 7 ,这和括号里写1 1 有什么关系吗?他拍着大腿说,如果他早知道的话,他就不会盲目地写括号了。

等等,还有一件事。
我之前使用过PostgreSQL,发现它没有INT(1 1 )术语。
它直接按字节定义类型,例如 INTEGER(4 字节)或 BIGINT(8 字节)。
这样就省去了很多麻烦。
您不必考虑显示器的宽度。
然而,在使用Oracle时,NUMBER(3 8 )有点奇怪。
好像不管你填多少位,存储都会按需压缩?这节省了空间,但是在查询时,您有时必须猜测某人保存了多少位数字。

突然想到现在云数据库这么多,比如阿里云的RDS或者华为云的GaussDB,它们自己的数值类型可能有更离经叛道的规则。
比如GaussDB的NUMERIC类型据说可以根据实际值调整存储宽度。
如果保留这些天文数字,它们会填满表空间吗?或者它有隐藏长度限制吗?这需要进一步研究。