问题描述
金额存储的字段是是以分位存储的,展示的时候要将后两位用小数点隔开 1000 > 10.00
问题出现的环境背景及自己尝试过哪些方法
-
<fmt:formatNumber>
可以对有小数点的进行操作,如果将整数选一部分转成小数需要写给自定义pattern
属性吗? - 使用
${fn:substring(str, start, end}
分别截取,中间在拼上小数点最后显示;
2.1 截取的时候因为金额长度不固定,我需要先取到金额的长度,这样取${fn:length(${orderRooms.price})}
方法报错了;${}再写一个${}就出问题了,这是什么原因?
2.2 曲线了一下先set一个对象,取的时候${fn:length(price)}
报错了:Problems calling function 'fn:length'
- 我可以自己写一个js然后可以行内调用吗,
<i>formatXXX(${orderRooms.price})</i>
?
相关代码
<c:set var="price" scope="page" value="${orderRooms.price}"/>
<p>${price}</p>
<c:set var="priceLength" value="${fn:length(price)}" />
<c:set var="pricePrefix" value="${fn:substring(orderRooms.price, 0, priceLength-2)}" />
<c:set var="priceSuffix" value="${fn:substring(orderRooms.price, priceLength-2, priceLength)}" />
<p>${priceLength}--${pricePrefix}--${priceSuffix}</p>
<p>体验价:¥<i>${orderRooms.price}</i></p>
你期待的结果是什么?实际看到的错误信息又是什么?
以上三种方法的问题希望得到解答;
最终的结果是1000 > 10.00
用的别的方法能解决也可以;
<fmt:formatNumber type="number" value="${price/100}" pattern="###############0.00"/>