本帖最后由 qvbfndcwy 于 2012-04-26 14:28:07 编辑

解决方案 »

  1.   

    你应该尽量在php中运算。再assign给模板。另外。你的代码有什么错?
      

  2.   

    第一行没错:a+b:<{$a+$b}><br />
    第二行也没错:a/c:<{$a/$c|string_format:"%.2f"}><br />
    第三行有错:(a+b)/c:<{($a+$b)/$c|string_format:"%.2f"}><br />
    就是想问第三行要怎么改另外,有十几列数据,要实现的是各列间的各种四则运算,php不可能把各结果都得到了再传给smarty吧。
      

  3.   

    提示什么错误? php完全可以把各结果得到了再传给smarty。不就是多几个变量或是数组的问题。
      

  4.   

    好吧,还是回到正题。
    smarty进行四则运算,优先级怎么定义?
      

  5.   

    加括号把,由于没有smarty环境。测试不了。看其他朋友怎么说。
      

  6.   

    <?php
    require_once "include/smarty_config.php";
    $a=1;
    $smarty->assign("a",$a);
    $smarty->display("t.tpl");
    ?>
    <{$a*100+$b*100+$c*100+$d*100}>以上只定义了一个$a=1,传给smarty,但是模板里面的语法
    <{$a*100+$a*100+$a*100+$a*100}>
    确实会出错。而改成:
    <{$a*100+$a*100+$a*100}>
    就正确了。
      

  7.   

    smarty中的四则运算
    已有 567 次阅读2006-12-4 11:14 |个人分类:PHP
    0
    {* $height=4, $width=5 *}
    {math equation="x + y" x=$height y=$width}
    OUTPUT:
    9
    {* $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#}
    OUTPUT:
    100
    {* you can use parenthesis *}
    {math equation="(( x + y ) / z )" x=2 y=10 z=2}
    OUTPUT:
    6
    {* you can supply a format parameter in sprintf format *}
    {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
    OUTPUT:
    9.44