アルファサード株式会社 代表取締役 野田 純生のブログ


(MT)切り捨て、切り上げ、四捨五入とか。


公開日 : 2008-11-03 14:47:59


税抜き価格から税込み価格を算出して、切り捨て、切り上げ、四捨五入して、3桁ごとにカンマ入れて出力する...ってどうやるの?

<p>四捨五入</p>
<MTSetVarBlock name="RoundValue">

<SCRIPTlanguage="JavaScript">
<!--
document.write(Math.round(4.321));
//-->
</SCRIPT>
</MTSetVarBlock>
<MTGetVar name="RoundValue">

ううむ...JavaScriptなのか?

ううむ...プラグインなのか? (今回はダイナミックパブリッシングなんだよ...)

面倒くさいのは面倒くさいけどできないこともないよーな気がしてさ。

例:entrypriceというカスタムフィールドを作って税抜き価格(数字)を入れておいて、税込み価格計算して切り捨て、切り上げ(小数点以下1桁)、四捨五入して3桁ごとにカンマ入れて出力する。

<mt:setvarblock name="price"><mt:entryprice></mt:setvarblock>

税抜価格: <$mt:var name="price" numify=","$> 円<br />

<mt:setvarblock name="price"><$mt:var
 name="price" value="1.05" op="*"$></mt:setvarblock>

税込価格: <$mt:var name="price" numify=","$> 円<br />

<mt:setvarblock
 name="one_tenth"><$mt:var name="price"
 regex_replace="/^[0-9]*¥.(.).*$/","$1"$></mt:setvarblock>

<mt:setvarblock name="price"><$mt:var
 name="price" regex_replace="/¥..*/",""$></mt:setvarblock>

切り捨て: <$mt:var name="price" numify=","$> 円<br />

切り上げ:
<mt:if name="one_tenth" ne="$price">
    <mt:if name="one_tenth" gt="0">
        <$mt:var name="price" op="+" value="1" numify=","$>
    <mt:else>
        <$mt:var name="price" numify=","$>
    </mt:else>
    </mt:if>
<mt:else>
    <$mt:var name="price" numify=","$>
</mt:else>
</mt:if>
円
<br />

四捨五入:
<mt:if name="one_tenth" ne="$price">
    <mt:if name="one_tenth" gt="4">
        <$mt:var name="price" op="+" value="1" numify=","$>
    <mt:else>
        <$mt:var name="price" numify=","$>
    </mt:else>
    </mt:if>
<mt:else>
    <$mt:var name="price" numify=","$>
</mt:else>
</mt:if>
円
カテゴリ


このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の代表取締役社長であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ