movabletype.jp
検索

MTタグで「四捨五入」の計算をする

Movable Type のテンプレートには、四則演算を行うためのモディファイアがあります。これらのモディファイアを使うと、「足す、引く、割る、掛ける」といった計算を、テンプレートタグだけで行うことができます。

今回は、Movable Type のコミュニティ「MTQ」内のトピック、「消費税 四捨五入 について」を題材に、「消費税を計算して、余りを四捨五入する」という方法をご紹介します。

前提条件

テンプレートの記述にあたって、前提条件は以下とします。

  • 税抜き価格は、カスタムフィールド「<MTPrice>」に入力されている
  • 消費税は8%とし、小数点以下の値は四捨五入する
  • テンプレートには税抜き価格と税込価格の2つを表示する

実際のテンプレート

<MTPrice setvar="tax_calc">
<MTSetVar name="tax_calc" value="1.08" op="*">
<MTSetVar name="tax_calc" value="0.5" op="+">
<MTGetVar name="tax_calc" regex_replace="/(\d*)\.(\d*)/","$1" setvar="tax_include">

税抜き価格: <MTPrice numify="1"> 円
税込価格: <MTGetVar name="tax_include" numify="1"> 円

それでは、一行ずつ説明しましょう。

<MTPrice setvar="tax_calc">

まず最初に、税抜き価格 「<MTPrice>」 の値を、setvarモディファイアを使って、変数 「tax_calc」 に代入します。

<MTSetVar name="tax_calc" value="1.08" op="*">

tax_calcに、現在の税率1.08をかけて、消費税課税後の金額を算出します。掛け算は「op」モディファイアに「*」を指定して計算しています。

<MTSetVar name="tax_calc" value="0.5" op="+">

その後、tax_calcに0.5を足して、小数点以下を切り捨てます。こうすることで、四捨五入が完成します。足し算は「op」モディファイアに「+」を指定して計算しています。

<MTGetVar name="tax_calc" regex_replace="/(\d*)\.(\d*)/","$1" setvar="tax_include">

最後に、変数tax_calcの値を、regex_replaceを利用して、小数点以下を削除して、tax_include という変数に代入します。これで、四捨五入が完成します。

税抜き価格: <MTPrice numify="1"> 円
税込価格: <MTGetVar name="tax_include" numify="1"> 円

税抜き価格である <MTPrice> と、消費税を計算して四捨五入した変数 tax_include の2つを、MTタグを利用して出力します。

今回のテンプレートで利用しているタグは、それぞれ以下に解説がありますので、あわせてご覧ください。

MTQとは

冒頭にご紹介した 「MTQ」 とは、シックス・アパートが運営する Movable Type コミュニティで、ユーザーの皆様同士がお互いに質問を投稿したり、回答しあう掲示板として運営しています。

MTQ は、さまざまな知識・知恵が集積しているナレッジポータルでもあります。掲示板を見ていると、Movable Type の使い方について、新しい発見があります。ぜひお時間のあるときに閲覧、そしてご活用ください。

これからも、MTQ 内の有用なトピックを随時ご紹介していきますので、どうぞご期待ください。

シェアする

  • このエントリーをはてなブックマークに追加

トラックバック