Example 8-24. {math}
Example a:
{* $height=4, $width=5 *}
{math equation="x + y" x=$height y=$width}
The above example will output:
9
Example b:
{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}
{math equation="height * width / division"
height=$row_height
width=$row_width
division=#col_div#}
The above example will output:
100
Example c:
{* you can use parenthesis *}
{math equation="(( x + y ) / z )" x=2 y=10 z=2}
The above example will output:
6
Example d:
{* you can supply a format parameter in sprintf format *}
{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
The above example will output:
9.44
同时就涉及到数字的格式问题了。还是看PHP官方网站的吧:http://cn2.php.net/sprintf
英文还是有些费解的,且看中文的(网上转来的):
string sprintf ( string format [, mixed args])
string sprintf ("<格式化字符串>", <参量表>);
类型,见下表 % 印出百分比符号,不转换。
b 整数转成二进位。
c 整数转成对应的 ASCII 字符。
d 整数转成十进位。
f 倍精确度数字转成浮点数。
o 整数转成八进位。
s 整数转成字符串。
x 整数转成小写十六进位。
X 整数转成大写十六进位。
Watch out the mysterious rounding rule.
<?php
$a = 4.5;
$b = sprintf("%d",$a);
$c = 4.5;
$d = sprintf("%.0f",$c);
$e = 0.45;
$f = sprintf("%.1f",$e);
print ("$b,$d,$f\n");
?>
The code above prints "4 , 5 , 0.5".
echo round(5.045, 2); // 5.04
一点说明:在SMARTY中测试,采用format = "%.0f,$c"格式的话——注意这个红色的逗号,输出结果中有个逗号,用format = "%.0f $c"就没有。
{$number|number_format}
格式化为货币格式,如:123,000,每3个数字加一个逗号