在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、使用内建函数c 复制代码 代码如下: <propertyname="freemarkerSettings"> <props> ..... <propkey="number_format">0.##</prop> ...... </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的优先级在两者之间。 七、总结 对于数字的格式化,可采用strng和number_format设置 数字格式化的优先级:string优先级最高,配置文件配置的优先级最低,在页面setting的优先级在两者之间。 |
请发表评论