跳至主要內容

小数

Mr.Hope大约 2 分钟

小数

字段类型

业务类型Java类型数据库类型规则说明
FLOATFloat
Double
BigDecimal
float(M,D)
double(M,D)
decimal(M,D)
浮点数,包括单精度浮点数(7-8位有效数字)、双精度浮点数(15-16位有效数字)和大数(超过15位)。

【数据库规则】:默认使用单精度浮点数float;如果size超过7位数字,即大于等于8,则使用双精度浮点数double;如果size超过15位数字,即大于等于16,则使用大数decimal。若未配置size,则按Java类型推测。

【前端交互规则】:单精度浮点数float和双精度浮点数double使用Number类型(因为都使用IEEE754协议64位进行存储),大数前后端协议使用字符串类型。 |

类型默认推断

Java类型Field注解推断ttype推断配置推断数据库配置
Float@FieldFLOATM=7,D=2float(7,2)
Double@FieldFLOATM=15,D=4double(15, 4)
BigDecimal@FieldFLOATM=64,D=6decimal(64,6)

参数属性

@Field.Float(M = 15, D = 2, min = "0.11", max = "99.99")
  • M:标度,数字的最大位数,maximum。默认值为15。用于前端校验传入参数的最大长度规则 (BUG)
  • D:精度,小数位数,decimal。用于前端校验传入参数的小数位数长度规则
    • float 默认值:2
    • double 默认值:4
    • decimal 默认值:6
  • min: 最小值。默认值为 -Infinity
  • max: 最大值。默认值为 Infinity

使用示例

基本用法

在Java中使用注解@Field.Float

@Field.Float
@Field(displayName = "平均年龄")
private BigDecimal averageAge;

在数据库中,上述代码将自动创建decimal类型的字段。

类型长度小数点注释
average_agedecimal154平均年龄

更多用法

//使用Float类型,指定数字的最大位数为14,小数位数为3。
@Field.Float(M = 14, D = 3@Field(displayName = "测试Float")
private Float price;

//使用Double类型
@Field.Float
@Field(displayName = "测试Double")
private Double unit_price;

//使用BigDecimal类型
@Field.Float
@Field(displayName = "测试BigDecimal")
private BigDecimal averageAge;

注意事项

  • 避免用户传入的数据长度超出限制。这会导致前端校验不通过。
//Float类型默认小数位数为2位
@Field.Float
@Field(displayName = "测试Float")
private Float price;
img.png
img.png