Built-ins for numbers

string

Converts a number to a string. It uses the default format that the programmer has specified. Note also that you can also explicitly specify a number or date format to use.

Speaking first of number formatting, there are three predefined number formats: number, currency, and percent. In this sense, you can use all of the below expressions:

<#assign answer=42/>
${answer}
${answer?string}  <#-- the same as ${answer} -->
${answer?string.number}
${answer?string.currency}
${answer?string.percent}  

If your locale is US English, this will produce:

42
42
42
$42.00
4,200%  

The output of first three expressions is identical because the first two expressions use the default format, which is "number" here. You can change this default using a setting:

<#setting number_format="currency"/>
<#assign answer=42/>
${answer}
${answer?string}  <#-- the same as ${answer} -->
${answer?string.number}
${answer?string.currency}
${answer?string.percent}  

Will now output:

$42.00
$42.00
42
$42.00
4,200%  

since the default number format was set to "currency".

Beside the three predefined formats, you can use arbitrary number format patterns written in Java decimal number format syntax both as a default setting or as an explicit format selector:

<#setting number_format="0.###E0"/>
${1234}
${12345?string("0.####E0")}  

outputs this:

1.234E3
1.2345E4  

Note that you can also write ${answer?string("number")} that will do the same as ${answer?string.number}.

Note that the number formatting is locale sensitive:

<#setting locale="en_US">
US people writes:        ${12345678?string(",##0.00")}
<#setting locale="hu">
Hungarian people writes: ${12345678?string(",##0.00")}  

outputs this:

US people writes:        12,345,678.00
Hungarian people writes: 12 345 678,00  

You can find information about the formatting of dates here.


Page generated: 2004-06-15 22:17:59 GMT FreeMarker Manual -- For FreeMarker 2.3