我想验证一个最大17个整数和2个分数的bigDecimal,我使用@Digits(integer=17, fraction=2)
,但这不接受1.10,例如@DecimalMin("0.00") @DecimalMax("99999999999999999.99")
接受10.1234。
感谢您的帮助!
答案 0 :(得分:0)
@Digits是要走的路。
您对1.10的确切问题是什么?我不明白为什么会被报告为无效。
使用@Digits(整数= 17,分数= 2),您允许最多 2个分数,因此1.10应该没问题。如果没有,我们在某个地方有一个错误。
答案 1 :(得分:0)
您的解决方案是正确的,因此必须在其他地方找到错误。例如:
new BigDecimal(1.10) // ERROR
应该是
new BigDecimal("1.10")
避免双精度构造函数的原因是double值没有精度(小数小数),并且是2的幂的近似值.1.10实际上是2的无限系列(负)幂。 / p>
使用第二个构造函数,BigDecimal变为 scale 2 = 2个小数位。
1.10与1.1相同,并且可能具有比例> 2,默认比例为double。