您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

jsp中freemarker 数字格式化详解(2)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:03 点击:

          </props>
</property>

六、舍入处理
有几种舍入处理方式,分别是  round,floor,ceiling 和string("0")
特点:
前面三种,从字面上很好理解,我们也经常使用,要说的最后一种,先看一个例子1.5?string("0")和2.5?string("0") 的值都是2 说明如下:
 在金融和统计学中,四舍五入都是根据所谓的一半原则,这就意味着对最近的“邻居”进行四舍五入,除非离两个邻居距离相等,这种情况下,它四舍五入到偶数的邻居。如果你注意看 1.5 和 2.5 的四舍五入的话,这在上面的示例中是可以看到的,两个都被四舍五入到2,因为 2 是偶数,但 1 和 3 是奇数。
用法:假设strnum是一个数字,则可以这样写${strnum?round(floor/ceiling)} 或者${strmun?string("0")}
可能用法:
可用在一些对数字精确度不高的情况(分页处理时也许有用),一些对小数敏感的,还是用 string函数

例如:
${num?string('0.00')}

如果小数点后不足两位,用 0 代替
${num?string('#.##')}

如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46
${num?string(',###.00')}
输出为:1,239,765.46

整数部分每三位用 , 分割,并且保证小数点后保留两位,不足用 0 代替
${num?string(',###.##')}
输出为:1,239,765.46

整数部分每三位用 , 分割,并且小数点后多余两位就只保留两位,不足两位就取实际位数,可以不不包含小数点
${num?string('000.00')}
输出为:012.70

整数部分如果不足三位(000),前面用0补齐,否则取实际的整数位

${num?string('###.00')}
等价于
${num?string('#.00')}
输出为:12.70

freemarker数字格式化带来的操作问题

freemarker在解析数据格式的时候,自动默认将数字按3为分割(1,000),这个问题给操作带来一定的额外处理复杂度,解决方法有如下几种:

1、在模板中直接加.toString()转化数字为字符串,如:
${languageList.id.toString()};

2、在freemarker配置文件freemarker.properties加
<#setting number_format="#">或者      <#setting number_format="0">;

3、在模板中直接加<#setting number_format="#">或者<#setting number_format="0">,如:<#if

AdminLanguagePaginationMsg?exists>
<#setting number_format="#">

对于数字的格式化,可采用strng 和number_format 设置
数字格式化的优先级:  string优先级最高,配置文件配置的优先级最低,在页面setting的优先级在两者之间。

 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • JSP与Servlet
  • 打开一个jsp页面默认查询所有数据,调用action
  • 使用JSP标签库验证用户的输入(2)完
  • 自己动手写MiniBBS系列(基本篇)之用户登录
  • JSP取当前日期
  • WIN98/2000下的jsp服务器
  • 自定义JSP标签(tag)浅议
  • Struts学习傻瓜式入门篇
  • JSP内建对象(二)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1