• ベストアンサー

PHP(smarty)での切り捨て計算について

PHP(smarty)での消費税端数計算で、切り捨て計算方法について教えて下さい。 プログラムをある会社に依頼し、納品を頂いたのですが、PHPのsmartyを使用したテンプレートファイルで表示デザインなどの変更ができるとのことで、にわかプログラマの私が修正を加えようとしているのですが、消費税の切り捨て処理を行いたいのですが、エラーが出てしまいます。計算としては17750円を単に*0.05するとの消費税は887.5円となるので、それを887円となるように切り捨てたいのです。floorを使い、下記プログラムの {$customer_margin_all*0.05} の部分をfloor.({$customer_margin_all*0.05})などとしてみましたが、ブラウザで表示してみるとsmartyのエラーが表示されてしまいます。 私の根本的な勘違いなのか、どのようなことで切り捨て計算ができないのかわからずに困っています。 お分かりの方、お知恵をお借りできますでしょうか? 上代-マージン=請求額 20000円-2250円=17750円 請求額小計: 17750円 消費税: 887.5円 合計: 18637.5円 <table border="0" bgcolor="#cccccc" cellspacing="1" cellpadding=5> <tr> <td><b>上代</b></td> <td><b>マージン</b></td> <td><b>請求額</b></td> </tr> {foreach from=$arr_list item="item"} <tr> <td>{$item.joudai}円</td> <td>{$item.customer_margin}円</td> <td>{$item.joudai-$item.customer_margin}円</td> </tr> {assign var='customer_margin_all' value=$customer_margin_all+$item.joudai-$item.customer_margin} {/foreach} <tr> <td COLSPAN="2">小計</td> <td >{$customer_margin_all}円</td> </tr> <tr> <td COLSPAN="2">消費税</td> <td >{$customer_margin_all*0.05}円</td> </tr> <tr> <td COLSPAN="2">合計</td> <td >{$customer_margin_all*1.05}円</td> </tr> </table>

質問者が選んだベストアンサー

  • ベストアンサー
  • a0205s
  • ベストアンサー率100% (4/4)
回答No.1

maquotoxさん,こんにちは。 Smartyで関数を使用する場合は ===================== {変数名|関数名}⇒{$var|foo} ===================== と記述しますので、 ===================== {$customer_margin_all*0.05|floor} ===================== とする事で計算できると思います。 お試しください。

maquotox
質問者

お礼

なるほど、そうだったのですね。 確かにバッチリうまく計算処理ができました。 頑張ってsmartyの勉強致します。 本当に助かりました、ありがとうございます。 また質問させて頂くかもしれませんが、その際は またお力を貸して下さい。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

>ブラウザで表示してみるとsmartyのエラーが表示されてしまいます。 どんなエラーメッセージが出ますか? また、本題とは関係ないことですが、消費税率を変数として保持しておく方がいいのではないかと思います。 将来、税率が変わったときに、修正する箇所をできるだけ少なくしておく方がよいのではないか?という考えからです。

関連するQ&A