在Bean验证规范(版本JSR 303和JSR 349)和docs中,两者都没有提及@Digits对Double或Float类型的支持。它只表示它支持以下类型:
但是,我对我的实体中的Double字段进行了多次测试,我发现它运行良好!
它有任何我看不到的缺点吗?不鼓励在Double中使用它吗?
并不是那么清楚答案 0 :(得分:1)
Double是浮点数,不能很好地描述十进制数。当发生舍入错误并且分数位数可以改变时。
答案 1 :(得分:1)
Hibernate Validator实际上支持任何@Digits
类型的Number
,因此也支持Double
/ double
。这是通过从给定数字的字符串表示创建BigDecimal
来完成的。由于规范没有规定此行为,因此可能无法与其他Bean Validation提供程序一起使用。