首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Freemarker将字符串转换为没有四舍五入的数字,并得到绝对值。

Freemarker将字符串转换为没有四舍五入的数字,并得到绝对值。
EN

Stack Overflow用户
提问于 2022-11-15 21:26:54
回答 1查看 24关注 0票数 0

我对共济会模版很陌生。我希望将一个字符串转换为一个数字,而不舍入任何十进制值,然后得到该值的绝对值。

示例:

代码语言:javascript
复制
<#if a.value?is_string>
            <#if a.value?number &lt; 0>
                "aValue": "${a.value?number?abs}"
            <#else>
                "aValue": "${a.value}"
            </#if>
</#if>

当我执行上述操作时,当将字符串转换为数字时,Freemarker首先对该值进行舍入,并得到该值的绝对值。

如果我把-1.234567作为a.value,那么它就等于1.235.预期结果为1.234567 (这应该在第一个if块内)

如果有人知道答案,请帮忙。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-11-16 07:35:27

这不是因为?number。这不算四舍五入。当将数字转换回字符串时,会发生损失。这将根据number_format设置进行本地化格式化,该设置必须类似于"0.###"

如果程序将再次解析输出的数字,则始终使用?c格式,如${a.value?abs?c}?c总是使用点作为小数分隔符,它从不使用分组分隔符(比如3,000,000),并且在点之后显示多达16位数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74452378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档