Freemarker數字格式化總結

https://blog.csdn.net/wangmeng951011/article/details/70568311前端

前言
咱們都知道,在咱們套頁面的時候必定要注意的一點就是數字的展現,由於稍有不慎,你的頁面上就可能出現0.60000000001這種的數字,若是是價格的話,那還真的是比較的尷尬!所以在咱們的代碼層面咱們是必定須要作好相關的數字格式化的準備的,固然,這並不意味這在前端頁面上咱們就能夠不作任何事情!畢竟雙重保險來的更加穩當一些。express

數字格式化
string (when used with a numerical value)
        Converts a number to a string. In its simplest form (expression?string) it uses the default format that the programmer has specified via the number_format and the locale configuration settings. You can also specify a number format explicitly with this built-in, as it will be shown later.
        There are four predefined number formats: computer, currency, number, and percent. The exact meaning of these is locale (nationality) specific, and is controlled by the Java platform installation, not by FreeMarker, except for computer, which uses the same formatting as the c built-in. There can also be programmer-defined formats, whose name starts with @ (programmers see more here…).ui

        這是其官網上給出的一段關於數字類型如何轉爲string字符串而後予以顯示的答案。大意是說若是咱們遇到了數字值,最好是利用其提供的方式轉化爲相應的字符串。下面咱們來具體的看幾個例子!this

一、貨幣展現
        實際上咱們在平常的開發過程當中遇到的比較多的問題就是貨幣的展現,對於貨幣而言,在不一樣的地區是有不一樣的符號的。所以,freemarker爲咱們提供了方便的方式實現。.net

<#assign x=42>
${x?string.currency}orm

        上述的表達式最終的結果將是¥42.00,這個功能看起來很不錯!blog

二、百分數展現
        百分數也是咱們在平常的開發過程當中遇到的比較多的問題,其展現的方案以下。固然變量咱們依舊使用上面的變量。接口

${x?string.percent}ci

        其最終的結果將是4,200%,看上去不賴!開發

三、數字格式化
        上面所說的例子是比較典型的數字展現的例子,下面所說的就是數字的格式化,其實若是數據來源於咱們的接口還好,若是是來自第三方或者外部平臺的接口,那可真的是必定要當心。稍不留神,就可能鬧出大笑話!
        下面的話,我首先列舉出一些例子,你們猜猜最終的格式化結果!

<#assign x = 1.234>
${x?string["0"]}
${x?string["0.#"]}
${x?string["0.##"]}
${x?string["0.###"]}
${x?string["0.####"]}

${1?string["000.00"]}
${12.1?string["000.00"]}
${123.456?string["000.00"]}

${1.2?string["0"]}
${1.8?string["0"]}
${1.5?string["0"]} <-- 1.5, rounded towards even neighbor
${2.5?string["0"]} <-- 2.5, rounded towards even neighbor

${12345?string["0.##E0"]}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        下面就是揭曉答案的時候,不知道各位看官猜的準不許呢!

1
1.2
1.23
1.234
1.234

001.00
012.10
123.46

1
2
2 <-- 1.5, rounded towards even neighbor
2 <-- 2.5, rounded towards even neighbor

1.23E4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        你們能夠看到這裏的話主要分爲三類,第一類就是規定後面的小數位數,固然在這種狀況下若是後面不足規定的位數是不會自動補齊的。
第二類就是不只規定了小數的位數,還在位數不足規定位數的時候自動補齊。
最後就是四捨五入的相關規則。固然還有科學計數法的實現!

總結
        如上咱們總結了在平常的開發中比較常見的一些Freemarker的數字表示及格式化的相關問題。這個對於咱們來講其實仍是蠻重要的!實際上我是參考了人家的官方文檔!地址以下,你們有興趣的能夠去看看原文!

freemarker官方文檔地址 ———————————————— 版權聲明:本文爲CSDN博主「henry-hacker」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/wangmeng951011/article/details/70568311

相關文章
相關標籤/搜索