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

使用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。

猜你喜欢

转载自blog.csdn.net/zhangshk_/article/details/78839518