angularjsで金額を扱う場合、currencyという、金額表示用に整形するフィルタがある。このcurrencyフィルタはロケールを日本にしていようが、問答無用で小数点以下二桁まで表示する。例えば、¥1,234と表示したいのに、¥1,234.00という風になる。これは如何にも不自然だ。
どうしたもんかと検索しても日本語で解決策が見つからない。しょうがないからリファレンスみたら、思いっきり好きな桁で丸めるオプションがあった。
<body ng-controller="ctrl">
<div>
<input ng-model="price">
</div>
<div>
<dl class="dl-horizontal">
<dt>そのまま</dt>
<dd>{{price | currency}}</dd>
<dt>.00を消す</dt>
<dd>{{price | currency:undefined:0}}</dd>
</dl>
</div>
要は、{{1234 | currency : undefined : 0}}とするだけだ。undefinedにしないと通貨のシンボルが変更されるから、そこだけ要注意。
教訓:困ったらリファレンス読め
あ、ユーザが翻訳した古いリファレンスじゃないよ。あれ大昔のだから。