#{...}: 数字插值
优质
小牛编辑
137浏览
2023-12-01
已经被废弃了:使用 number_format
设置项 和 the
string
内建函数 来代替。对于计算机使用
(也就非本地的格式化)的格式化,使用 c
内建函数
(比如 number?c
)。
概要
#{expression}
或#{expression; format}
这里:
-
expression
: 可以算作是数字的表达式 -
format
: 可选的格式说明符
描述
数字插值被用来输出数值。如果表达式不能算成数字, 那么计算过程就会以抛出错误而终止。
可选的格式说明符指定了使用
mminMmax
语法显示的小数位数的最小和最大值。比如,m2M5
表示"最少两位,最多5位小数位"。最小值和最大值说明符部分可以被忽略。
如果仅指定最小值,那么最大值和最小值相等。如果仅指定最大值,那么最小值是0。
输出的小数点字符是国际化的(根据当前本地设置),这表示它可能不是一个点。
不像 ${...}
, #{...}
忽略 number_format
设置项。实际上这是向后兼容的一个怪点,但是当你在如
<a href="quertyDatabase?id=#{id}">
这些情况打印数字时它可能是有用的,这里你肯定不想分组分隔符或像那些幻想的东西。
然而,从 FreeMarker 2.3.3 版本开始,而使用 ?c
内建函数 来达到这个目的,
比如 <a href="quertyDatabase?id=${id?c}">
。
比如。假设 x
是
2.582
而 y
是
4
:
<#-- If the language is US English the output is: --> #{x} <#-- 2.582 --> #{y} <#-- 4 --> #{x; M2} <#-- 2.58 --> #{y; M2} <#-- 4 --> #{x; m1} <#-- 2.6 --> #{y; m1} <#-- 4.0 --> #{x; m1M2} <#-- 2.58 --> #{y; m1M2} <#-- 4.0 -->