问题描述
/** * 领域辅助指标总分值 */@Column(precision=8,scale=4)private BigDecimal lyfzzbfz; NUMBER数据类型可以有两个限定符,如: column NUMBER ( precision, scale) precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。 scale表示数字小数点右边的位数,scale默认设置为0. 如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。这句话如何理解啊 问题补充:precision 数据长度 scale 小数长度 precision =整数长度+小数长度
解决方案
如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。 对于a = 21.13:scale=-1 ==>a = 20scale=0 ==>a = 21scale=2 ==>a = 21.13
解决方案二:
precision(精度) =整数长度+小数长度(scale)正确
时间: 2024-10-27 07:37:53