安企 CMS 模板中如何将数字、字符串、数组等任意值按指定格式格式化成字符串输出?
stringformat 过滤器可以将数字、字符串、数组等任意值按指定格式格式化成字符串输出。
一些格式化标准:
%v输出结构体 {10 30}%+v输出结构体显示字段名 {one:10 tow:30}%#v输出结构体源代码片段 main.Point{one:10, tow:30}%T输出值的类型 main.Point%t输出格式化布尔值 true%d输出标准的十进制格式化 100%b输出标准的二进制格式化 99 对应 1100011%c输出定整数的对应字符 99 对应 c%x输出十六进制编码 99 对应 63%f输出十进制格式化 99 对应 63%e输出科学技科学记数法表示形式 123400000.0 对应 1.234000e+08%E输出科学技科学记数法表示形式 123400000.0 对应 1.234000e+08%s进行基本的字符串输出 “\“string\”” 对应 “string”%q源代码中那样带有双引号的输出 “\“string\”” 对应 “\“string\””%p输出一个指针的值 &jgt 对应 0xc00004a090%后面使用数字来控制输出宽度 默认结果使用右对齐并且通过空格来填充空白部分%2.2f指定浮点型的输出宽度 1.2 对应 1.20%*2.2f指定浮点型的输出宽度对齐,使用-标志 1.2 对应 *1.20
使用方法
stringformat 过滤器的使用方法:
{{ obj|stringformat:"格式定义" }}
比如将 3.141592653 格式化成保留 2 位小数点的数,则可以这么写:
{{ 3.141592653|stringformat:"%.2f" }}
# 显示结果
3.14
示例演示
{{ simple.float|stringformat:"%.2f" }}
{{ simple.uint|stringformat:"Test: %d" }}
{{ simple.chinese_hello_world|stringformat:"Chinese: %s" }}
# 显示结果
Hello!
3.14
Test: 8
Chinese: 你好世界