On this page
#{...}:数值插补
Page Contents
不推荐使用:请改用number_format setting和内置字符串。要为计算机 Spectator 设置格式(即不进行本地化格式设置),请使用c built-in(例如number?c
)。
虽然默认情况下会解释#{...}
,但是可以通过将interpolation_syntax
配置设置(Java API 中的Configuration.setInterpolationSyntax
)设置为dollar
来禁用它。然后#{...}
只是静态文本,只有${...}
将用作插值。
Synopsis
#{expression}
or
#{expression; format}
Where:
expression
:可以计算为数字的表达式。format
:可选格式说明符。
Description
数字插值用于输出数字值。如果表达式的计算结果不是数字,则计算结果以错误结束。
可选格式说明符使用语法mminMmax
指定显示的小数位数的最小和最大数目。例如,m2M5
表示“至少两个,最多五个小数位”。最小或最大说明符部分可以省略。如果仅指定最小值,则最大值等于最小值。如果仅指定最大值,则最小值为 0.
输出的小数点分隔符已国际化(根据当前的语言环境设置),这意味着它不一定是点。
与${...}
不同,#{...}
忽略了number_format setting。这实际上是一个向后兼容的怪癖,但是在诸如<a href="queryDatabase?id=#{id}">
的情况下打印数字时肯定很有用,在这种情况下,您肯定不希望对分隔符或类似的东西进行分组。但是,从 FreeMarker 2.3.3 开始,而不是为此使用?c built-in,例如<a href="queryDatabase?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 -->