Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。

NUMBER数据类型可以有两个限定符,如:

column NUMBER ( precision, scale)

表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。

scale表示数字小数点右边的位数,scale默认设置为0.  如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

以上是资料

然后坑我的是我以为precision 是指小数点左边的位数,其实它指的是有效位(整数位位数+小数点后的位数)

比如123.0、XXX.X这些数字的有效位为4,在mysql中定义的时候要定义为double(4,1).

05-11 19:35