6

PHP NumberFormatter を使用してフォーマットされた通貨から最後の .00 を削除しようとしていますが、それは不可能のようです。このオプションは表示されますが、通貨には影響しないようです:DECIMAL_ALWAYS_SHOWN

$nf = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
$nf->formatCurrency(0, 'EUR');
// Output is €0.00 but it doesn't seem possible to remove the .00

.00 に対して str_replace を実行しますが、これはロケールによって異なる可能性があるため、それほど簡単ではないようです。

4

5 に答える 5

7

format()メソッドでのみ強制できます。

$nf = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
$nf->setTextAttribute(\NumberFormatter::CURRENCY_CODE, 'EUR');
$nf->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 0);
echo $nf->format(1);
于 2013-07-01T14:52:01.157 に答える
0

これを試して :

$nf = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
$nf->formatCurrency(0, 'EUR');
numfmt_set_attribute($nf, \NumberFormatter::MAX_FRACTION_DIGITS, 0);
echo numfmt_format($nf, 123.00)."\n";
于 2013-07-01T14:52:38.913 に答える
-3

round()でできませんか?

echo round($nf, 0)
于 2013-07-01T14:54:06.623 に答える