如何在java中验证浮点?SpringMVC

如何在java中验证浮点?SpringMVC,java,validation,Java,Validation,我想知道是否有人能帮我弄清楚如何验证浮点。我有一个注释,它只验证整数,我需要输入字段能够除十进制值之外,而不是0 我尝试过的事情: @Range(min=(long)0.1) 这不起作用,允许将0作为有效输入传递。 使用公共浮动小时数 @ DecimalMin(0.1) public BigDecimal hoursUsed; 我尝试将变量类型更改为BigDecimal,然后使用@DecimalMin(min=0.1)进行验证。但是,在尝试操作此数据时,我会遇到一个错误。“参数类型BigDe

我想知道是否有人能帮我弄清楚如何验证浮点。我有一个注释,它只验证整数,我需要输入字段能够除十进制值之外,而不是0

我尝试过的事情:

@Range(min=(long)0.1)
这不起作用,允许将0作为有效输入传递。 使用公共浮动小时数

@ DecimalMin(0.1)
public BigDecimal hoursUsed;
我尝试将变量类型更改为BigDecimal,然后使用
@DecimalMin(min=0.1)
进行验证。但是,在尝试操作此数据时,我会遇到一个错误。
“参数类型BigDecimal,float的运算符*未定义”

尝试将浮点值强制转换为BigDecimal将导致错误
“参数类型java.math.BigDecimal,BigDecimal的运算符*未定义”

我还尝试创建customConstraintValidator注释,如果输入返回0,该注释将返回验证错误。这样我就可以简单地使用
@Range(min=0)
和一个自定义注释(例如)
@NotZero
来确保输入确实比0更精确

这导致ConstraintValidator中出现错误,因为我无法通过泛型方法传入浮点值。错误是:
语法错误,请插入“维度”以完成引用类型。


基本上,我的问题是如何验证浮点?

可能不是一种有效的方法,但您可以在try-catch块中使用
NumberFormatException
进行验证。我想您最好检查一下这个答案,哦,企业的乐趣。回到过去,我们只需调用Float.parseFloat(),并捕获任何异常。您发布的问题建议将类型切换为BigDecimal,我似乎无法这样做,因为我无法操作输入,因为参数类型java.math.BigDecimal的*未定义@Steve Smith我一定还活在过去的好日子里:)这正是我的建议:)