jsp中比较数值精度丢失问题

时间:2024-03-17 09:54:06
现象:
 version 后台传值:float 9.66
jsp中
${version > =9.66}  false
${version <= 9.66}  true


原因:
1.jsp属于服务端代码,9.66默认是double类型。
2.jsp中$取值是有类型的
3.所以,${version > =9.66} 实际是float类型和double类型做比较时精度丢失导致的,
具体是因为做比较时,float类型被强制转成double类型造成精度丢失。


可看下边的例子:
jsp中比较数值精度丢失问题

所以在jsp中进行数值比较的时候要统一数据类型,统一使用double类型进行比较。