jsp 页面,将金额1000转为10.00

问题描述

金额存储的字段是是以分位存储的,展示的时候要将后两位用小数点隔开 1000 > 10.00

问题出现的环境背景及自己尝试过哪些方法

  1. <fmt:formatNumber> 可以对有小数点的进行操作,如果将整数选一部分转成小数需要写给自定义pattern属性吗?
  2. 使用${fn:substring(str, start, end}分别截取,中间在拼上小数点最后显示;
    2.1 截取的时候因为金额长度不固定,我需要先取到金额的长度,这样取${fn:length(${orderRooms.price})}方法报错了;${}再写一个${}就出问题了,这是什么原因?
    2.2 曲线了一下先set一个对象,取的时候${fn:length(price)}报错了: Problems calling function 'fn:length'
  3. 我可以自己写一个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 用的别的方法能解决也可以;

阅读 2.8k
3 个回答

<fmt:formatNumber type="number" value="${price/100}" pattern="###############0.00"/>


(1000/ 100).toFixed(2)

/100 就可以,虽然不能保留后面的零,但是分为转成元没问题了;[吐血]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题