我对共济会模版很陌生。我希望将一个字符串转换为一个数字,而不舍入任何十进制值,然后得到该值的绝对值。
示例:
<#if a.value?is_string>
<#if a.value?number < 0>
"aValue": "${a.value?number?abs}"
<#else>
"aValue": "${a.value}"
</#if>
</#if>当我执行上述操作时,当将字符串转换为数字时,Freemarker首先对该值进行舍入,并得到该值的绝对值。
如果我把-1.234567作为a.value,那么它就等于1.235.预期结果为1.234567 (这应该在第一个if块内)
如果有人知道答案,请帮忙。谢谢。
发布于 2022-11-16 07:35:27
这不是因为?number。这不算四舍五入。当将数字转换回字符串时,会发生损失。这将根据number_format设置进行本地化格式化,该设置必须类似于"0.###"。
如果程序将再次解析输出的数字,则始终使用?c格式,如${a.value?abs?c}。?c总是使用点作为小数分隔符,它从不使用分组分隔符(比如3,000,000),并且在点之后显示多达16位数字。
https://stackoverflow.com/questions/74452378
复制相似问题