freemarker---大数字自动加逗号分隔&更大数字认为是字符串不用逗号分隔

本文探讨了Freemarker在处理大数字时的默认行为及其调整方法。通过使用特定指令可以控制数字显示格式,解决数字转为字符串的问题,并提供了一种通用解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用freemarker的时候遇到了一个小问题,
freemarker默认会对大数字进行逗号分隔,如果我们不想让他逗号分隔,我们可以

加?c 不让他对数字用逗号分隔

但是我的业务场景是,想让他用逗号分隔,但是出现了一个问题,就是对于有些列他没有用逗号分隔:
这里写图片描述

是不是因为数字太大了,所以他直接把他作为字符串来处理了呢!
猜想是对的,确实是转为了字符串,如果想让他用逗号分隔,那么我们需要告诉freemarker这个是一number,因此

加?number 将字符串转为number,因此freemarker就可以对number进行逗号分隔。

这里写图片描述
问题解决了。

然后我考虑,是不是把所有的列都用?number 转一下,这样,以后遇到同样的问题,就不会报错了。
但是悲催的是,他对于低于11位的数字,默认会进行加逗号转为string操作,因此我再进行?number,就会报错了。

Can’t convert this string to number: “24,837,054”

因此这个问题,不是很好处理,那么怎么统一解决呢,
我的想法不管大数字还是更大的数字,都会转为string,所以,可以把string转为number,如果成功说明是特大数字,没有逗号分隔的,否则就是大数字,不用处理。
对于特大数字,转number。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值