java html velocity 中怎么截取小数位?

<div class="s1 swiper-container swiper-container3">
        #set($datas = $dataTool.list("t1,t2", "a1,a2",1))
        #foreach($data in ${datas.datas})

        #set($dataValue = $data.value)
        #set($dataPreValue = $data.preValue)
        #set($Double = 0.00)
        #set($diff = $Double.valueOf($dataValue) - $Double.valueOf($dataPreValue))
    <div class="swiper-wrapper">
        <div class="inner swiper-slide">
            <a href="">
                <h3>${data.name}</h3>
                <div class="c1 value">${data.value}</div>
                <div class="c2">
                        <span id="aaa" class="l fn-diff">$diff</span>
                        <span class="r">${data.raise1}</span>
                </div>
            </a>
        </div>
    </div>
    #end
</div>

上面的例子运行后大概是这样;
diff = value - prevalue
diff = 1 - 0
结果弄出来这样 0.99999999999999999
明显不对,要么怎样让结果变成正确?要么怎样小数点截取到2位;

阅读 3.8k
1 个回答

diff 这种逻辑尽量放在应用中去维护,而不是在vm模板中维护,在data 中增加一个diff属性,重写getter方法:

getDiff(){
return String.format("%.2f", Double.valueOf(this.getValue()) - Double.valueOf(this.getPreValue()));
} 

页面上直接展示即可:

 <span id="aaa" class="l fn-diff">${data.diff}</span>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题