请教 smarty 的 string_format 没有四舍五入

zoujun1984 2010-09-21 12:41:20
情况是这样的 如果我直接写数字如:{ 0.075|string_format:"%.2f" } 显示结果为: 0.08
但是我通过两个参数乘积显示 就没有四舍五入 如
{* assign var=sums value=$row.price*$row.nums *} (597.075)
{* $sums|string_format:"%.2f" *} 显示结果为: 597.07

这个需要怎么解决?
...全文
332 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
standford 2010-09-21
  • 打赏
  • 举报
回复
这个你可以自己写一个插件,方法可以用.来分隔,如果.后面的数字大于5,前面的就加一,smarty中只要没有的就自己写插件。位置在libs/plugins中,一定要注意文件名和函数名。
zoujun1984 2010-09-21
  • 打赏
  • 举报
回复
我晕 我在中间加了一行 $string .= ''; 貌似就对了...
zoujun1984 2010-09-21
  • 打赏
  • 举报
回复
还是没解决...

我看他内部是这样的

function smarty_modifier_string_format($string, $format)
{
return sprintf($format, $string);
}

然后$string的值是597.075
返回回来是597.07

然后我自己定义了一个参数 如 $temp = 597.075;
执行 return sprintf($format, $temp);
返回的是597.08

怨念啊~~~~~~~~~
standford 2010-09-21
  • 打赏
  • 举报
回复
现在问题解决了不
zoujun1984 2010-09-21
  • 打赏
  • 举报
回复
可能是 执行 sprintf 时出现的问题

4,249

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧