struts2标签处理double数据类型 精度缺失问题

首先贴出一段代码:

<s:property value="#temp.total - #temp.less"/>

total == 200

less  == 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)}"/>

就可以了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值