日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

010_数字内建函数

發(fā)布時(shí)間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 010_数字内建函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. abs

1.1. 給出數(shù)字的絕對值。

2. c(當(dāng)被用作是數(shù)字值時(shí))

2.1. 該內(nèi)建函數(shù)將"計(jì)算機(jī)語言"的數(shù)字轉(zhuǎn)換成字符串, 這都是對計(jì)算機(jī)來說的, 而不是對用戶。也就是說, 它根據(jù)程序語言的用法來進(jìn)行格式化, 這對于FreeMarker的所有本地?cái)?shù)字格式化設(shè)置來說是獨(dú)立的。它通常使用點(diǎn)來作為小數(shù)分隔符, 而且它從來不用分組分隔符(像3,000,000)。

2.2. 它最多在小數(shù)點(diǎn)后打印16位。

2.3. 該內(nèi)建函數(shù)非常嚴(yán)格, 因?yàn)樽鳛槟J(rèn)(像${x}這樣)數(shù)字被本地(語言, 國家)特定的數(shù)字格式轉(zhuǎn)換為字符串, 這是讓用戶來看的(比如3000000可能會被打印為3,000,000)。

2.4. 中國本地顯示

2.5. 德國本地顯示(德國小數(shù)點(diǎn)使用逗號, 分隔符使用點(diǎn)號)

3. lower_abc

3.1. 將1, 2, 3等..., 轉(zhuǎn)換為字符串"a", "b", "c"等...當(dāng)?shù)竭_(dá)"z"時(shí), 那么會繼續(xù)轉(zhuǎn)換成如: "aa", "ab"等...這和電子表格應(yīng)用程序(比如Excel或Calc)的列標(biāo)簽有著相同的邏輯。數(shù)字的最小值是1。沒有上限值。如果數(shù)字是0或更小或它不是整數(shù), 那么模板處理將會中止并發(fā)生錯(cuò)誤。

4. upper_abc

4.1.?和lower_abc相同, 但是它轉(zhuǎn)換成大寫字母, 比如: "A", "B", "C", … , "AA", "AB", 等...

5. round

5.1. round: 返回最近的整數(shù)。如果數(shù)字以.5結(jié)尾, 那么它將進(jìn)位(也就是向正無窮方向進(jìn)位)。

6. floor

6.1. floor: 返回?cái)?shù)字的舍掉小數(shù)后的整數(shù)(也就是向負(fù)無窮舍棄)。

7. ceiling

7.1. ceiling: 返回?cái)?shù)字小數(shù)進(jìn)位后的整數(shù)(也就是向正無窮進(jìn)位)。

8. string(當(dāng)用作是數(shù)字類型時(shí))

8.1. 將一個(gè)數(shù)字轉(zhuǎn)換成字符串。它使用程序員通過number_format和locale設(shè)置的默認(rèn)格式。也可以明確地用這個(gè)內(nèi)建函數(shù)再指定一個(gè)數(shù)字格式。

8.2. 有四種預(yù)定義的數(shù)字格式: computer, currency(貨幣), number和percent。這些格式的明確含義是本地化(國家)指定的, 受Java平臺安裝環(huán)境所控制, 而不是FreeMarker。

8.3. computer和c內(nèi)建函數(shù)是相同的格式。

8.4. Java數(shù)字格式語法(java.text.DecimalFormat)

8.4.1. pattern="0", 這里的0代表數(shù)字, 如果number的位數(shù)大于等于pattern的0的個(gè)數(shù), result=number。否則不夠的位數(shù)以0填充。

8.4.2. #號和0的含義相同, 都是代表數(shù)字, 不同的是其不會用0填充, 不夠位數(shù)就不顯示。

8.4.3. E使用科學(xué)計(jì)數(shù)法。

8.4.4. 在金融和統(tǒng)計(jì)學(xué)實(shí)踐中, 四舍五入都是根據(jù)所謂的一半原則, 這就意味著對最近的"鄰居"進(jìn)行四舍五入, 除非離兩個(gè)鄰居距離相等, 這種情況下, 它四舍五入到偶數(shù)的鄰居。

9. 例子

9.1. 新建一個(gè)名為FMBuiltInsForNumber的動態(tài)Web工程, 同時(shí)添加相關(guān)jar包。

9.2. 編寫FMFactory.java

package com.fm.util;import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import freemarker.template.Configuration; import freemarker.template.TemplateExceptionHandler;public class FMFactory {private final static FMFactory instance = new FMFactory();private FMFactory() {}public static FMFactory getInstance() {return instance;}private Map<String, Configuration> map = new ConcurrentHashMap<String, Configuration>();// 創(chuàng)建單個(gè)Configuration實(shí)例public synchronized Configuration getCfg(Object servletContext, String path) {if(null != map.get(path)) {return map.get(path);}Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);cfg.setServletContextForTemplateLoading(servletContext, path);cfg.setDefaultEncoding("utf-8");// 數(shù)值格式化模式cfg.setNumberFormat("computer");// 本地化設(shè)置, 中文中國cfg.setLocale(Locale.CHINA);cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);map.put(path, cfg);return cfg;}}

9.3. 編寫FMBuiltInsForNumber.java

package com.fm.action;import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fm.util.FMFactory; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException;public class FMBuiltInsForNumber extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Configuration cfg = FMFactory.getInstance().getCfg(req.getServletContext(), "/WEB-INF/templates");Template template = cfg.getTemplate("builtinsfornumber.html");Map<String, Object> root = new HashMap<String, Object>();Writer out = new OutputStreamWriter(resp.getOutputStream());try {template.process(root, out);} catch (TemplateException e) {e.printStackTrace();}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }

9.4. 修改web.xml

9.5. 在/WEB-INF/templates下編寫builtinsfornumber.html

<!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>數(shù)字內(nèi)建函數(shù)</title></head><body><h2>給出數(shù)字的絕對值</h2>${-5?abs}<h2>c(當(dāng)被用作是數(shù)字值時(shí))</h2>300000: ${300000}<br />0.333333333333333333355555555: ${0.333333333333333333355555555}<br />300000?c: ${300000?c}<br />0.333333333333333333355555555?c: ${0.333333333333333333355555555?c}<h2>將1, 2, 3等..., 轉(zhuǎn)換為字符串"a", "b", "c"等</h2><#list 1..30 as n>${n?lower_abc} </#list><h2>將1, 2, 3等..., 轉(zhuǎn)換為字符串"A", "B", "C"等</h2><#list 1..30 as n>${n?upper_abc} </#list><h2>返回最近的整數(shù)</h2>${3.1?round}<br />${3.5?round}<br />${3.9?round}<h2>返回?cái)?shù)字的舍掉小數(shù)后的整數(shù)</h2>${3.1?floor}<br />${3.5?floor}<br />${3.9?floor}<h2>返回?cái)?shù)字小數(shù)進(jìn)位后的整數(shù)</h2>${3.1?ceiling}<br />${3.5?ceiling}<br />${3.9?ceiling}<h2>string(當(dāng)用作是數(shù)字類型時(shí))</h2><#assign x=4200>${x}<br /><#-- the same as ${x} -->string: ${x?string}<br /> string.computer: ${x?string.computer}<br /><#-- string.currency貨幣格式 -->string.currency: ${x?string.currency}<br />string.number: ${x?string.number}<br />string.percent: ${x?string.percent}${x?string["0"]}<br /><br />1.234使用"0.#"模式: ${1.234?string["0.#"]}<br />1.234使用"0.##"模式: ${1.234?string["0.##"]}<br />1.234使用"0.###"模式: ${1.234?string["0.###"]}<br />1.234使用"0.####"模式: ${1.234?string["0.####"]}<br /><br />1使用"000.00"模式: ${1?string["000.00"]}<br />12.1使用"000.00"模式: ${12.1?string["000.00"]}<br />123.456使用"000.00"模式: ${123.456?string["000.00"]}<br /><br />1.2使用"0"模式: ${1.2?string["0"]}<br />1.8使用"0"模式: ${1.8?string["0"]}<br />1.5使用"0"模式: ${1.5?string["0"]}<br />2.5使用"0"模式: ${2.5?string["0"]}<br /><br />12345使用"0.##E0"模式: ${12345?string["0.##E0"]}</body> </html>

9.6. 運(yùn)行項(xiàng)目

總結(jié)

以上是生活随笔為你收集整理的010_数字内建函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。