首先贴出一段代码:
<s:property value="#temp.total - #temp.less"/>
total == 200less == 199.9
结果:0.099999999432
说明精度缺失了。
解决办法:
<s:property value="%{@java.math.BigDecimal@valueOf(#temp.total) - @java.math.BigDecimal@valueOf(#temp.less)}"/>
结果:0.1
解决办法二:
在后台中定义个操作类:
package org.xulin.comn;
public class MathTool{
public static double sub(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
}
然后再struts标签中使用:
<s:property value="%{@org.xulin.comn.MathTool@subf(#temp.total,#temp.less)}"/>
就可以了;