smarty的五舍六入函数string_format

在用smarty模板进行小数输出的时候,碰到一个奇怪的问题。开始还以为是程序计算出现了问题,后来一查才知道是

smarty的函数string_format导致的,这个函数是五舍六入的。

就是一个小数96.55,使用string_format函数取一位小数后,结果竟然是96.5。

比如{96.55|string_format:"%.1f"},输出后就是96.5。

{96.56|string_format:"%.1f"},输出后就是96.6。

对应的PHP的五舍六入函数是sprintf

比如
$a = '96.55';
$b = sprintf('%.1f',$a);
echo $b;
输出后也是96.5

$a = '96.56';
$b = sprintf('%.1f',$a);
echo $b;
输出后是96.6