Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres自定义浮点类型,该类型始终在点后截断为2位小数_Postgresql - Fatal编程技术网

Postgresql Postgres自定义浮点类型,该类型始终在点后截断为2位小数

Postgresql Postgres自定义浮点类型,该类型始终在点后截断为2位小数,postgresql,Postgresql,我可以在postgres中生成一个自定义数据类型吗?每次我在其中插入或更新浮点时,它都会被截断为点后的2位小数 create table money( formatted moneys_type ); insert into money values (30.122323213); Select * from money; 返回 30.12 更新我没有使用数字或十进制,因为它们在1.999=>2时取整,请参见 数字的精度是数据中有效数字的总计数 整数,也就是数字两边的位数 小数

我可以在postgres中生成一个自定义数据类型吗?每次我在其中插入或更新浮点时,它都会被截断为点后的2位小数

create table money(

   formatted moneys_type
);

insert into money values (30.122323213);

Select * from money; 
返回

30.12
更新我没有使用数字或十进制,因为它们在1.999=>2时取整,请参见

数字的精度是数据中有效数字的总计数 整数,也就是数字两边的位数 小数点。数字的刻度是十进制数字的计数 在小数部分,小数点的右边。所以 数字23.5141的精度为6,刻度为4。整数可以是 被认为具有零刻度

要声明numeric类型的列,请使用以下语法:

在类型声明中显式指定时,允许的最大精度为1000

所以你可以用

NUMERIC(1000, 2)

数字的精度是数据中有效数字的总计数 整数,也就是数字两边的位数 小数点。数字的刻度是十进制数字的计数 在小数部分,小数点的右边。所以 数字23.5141的精度为6,刻度为4。整数可以是 被认为具有零刻度

要声明numeric类型的列,请使用以下语法:

在类型声明中显式指定时,允许的最大精度为1000

所以你可以用

NUMERIC(1000, 2)

你好,阿丹,谢谢,但唯一的问题是,数字和十进制类型在存储10.999之类的数字时会将其四舍五入为11,是否有任何方法可以阻止它四舍五入。好吧,这就成了一个完全不同的问题。您需要在两者之间的某个位置使用
trunc
函数。你可以尝试。你好,阿丹,谢谢,但唯一的问题是,当存储10.999之类的数字时,数字和十进制类型会将其四舍五入为11,是否有任何方法阻止它四舍五入。好吧,这就成了一个完全不同的问题。您需要在两者之间的某个位置使用
trunc
函数。你可以试试看。