小数
大约 2 分钟
小数
字段类型
业务类型 | Java类型 | 数据库类型 | 规则说明 |
---|---|---|---|
FLOAT | Float 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 | @Field | FLOAT | M=7,D=2 | float(7,2) |
Double | @Field | FLOAT | M=15,D=4 | double(15, 4) |
BigDecimal | @Field | FLOAT | M=64,D=6 | decimal(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:
最小值。默认值为 -Infinitymax:
最大值。默认值为 Infinity
使用示例
基本用法
在Java中使用注解@Field.Float
@Field.Float
@Field(displayName = "平均年龄")
private BigDecimal averageAge;
在数据库中,上述代码将自动创建decimal类型的字段。
名 | 类型 | 长度 | 小数点 | 注释 |
---|---|---|---|---|
average_age | decimal | 15 | 4 | 平均年龄 |
更多用法
//使用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;