java、freemarker保留两位小数

网友投稿 410 2023-06-01


java、freemarker保留两位小数

 一、java保留2位小数

double acc = 22.4322;

String accX = Strihttp://ng.format("%.2f", acc);

二、freemarker保留两位小数

<#if centerFreeSize??>

${centerFreeSize?string("#.##")}

<#else>

0.00

#if>

补充:freemarker保留小数

freemarker保留两位小数

方法一

#{number ;m1M2}    m 最少几位小数,M最多几位小数

方法二

${x?string("0.##")}

在开发中很容易忽视一点,输入一个值(可能是小数),输出时如果不做处理,就很容易出现

隐形的BUG。比如,如果从数据库取出一个0.22的数值,一般的输出${x?if_exists?html}, 这时是显示0,而不是0.22。

应该写成${x?if_exists?string.number} 或者 ${x?if_exists.toString()?html}

1, 小于1的数字在freemarker中相减错误

2,1000,2000这类的数字在freemarker中的格式错误,会被解释成1,000

解决方法设置number在freemarker的显示格式

Xml代码

<#setting number_format="0.00">

<#assign x="${goodsgroupt.memberprice}"/>

<#assign y="${goodsgroupt.groupprice}"/>

${(x?number-y?number)}

重点就是这个number_format了

网上说让number_format="0",这样只能解决第二种情况。

四、局部设置

特点:

如果在某个页面,或者某几个页面(其它页面可import进来),用到的数字格式化是相同的,可考虑统一配置数字的格式化形式

用法:

只需在用到需要格式化的数字之前 设置就可以了,格式如下: <#setting number_format=",##0.##">  其中",##0.##"的内容是采用类似于Java中数字格式的语法形式,也就是以上的第三点。

注意:

如果用在一个页面,则整个页面默认就是那种格式,除非用string函数覆盖了默认的格式,同样的,如果放在一个公共的页面,其它页面只要include它,也会是同样的格式。

五、全局设置

特点:

在所有的页面都默认提供数字的格式化形式

用法

(针对spring):在freemarker的配置文件中设置其默认的数字格式化形式,如下:

代码如下

< property name = "freemarkerSettings" >

< props>

.....

< prop key = "number_format"> 0.##

......


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:hibernate 三种状态的转换
下一篇:Spring之IOC详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~