我有一个价格,让我们说$price = 9,00 €
。如果逗号之后价格有2个零,那么很容易将其转换为9 €
?我的意思是这个或那个东西有功能。如果使用€
字符无法做到这一点,那么如何仅使用整数9,00
> 9
,但9,20
将保留9,20
。
我知道可以使用substr
或其他方式完成,但我想知道PHP是否可以解决这种情况。
答案 0 :(得分:3)
您必须使用NumberFormatter。
$formatter = new NumberFormatter('de-DE', NumberFormatter::CURRENCY);
将其解析为浮动
$value = $formatter->parseCurrency('9,00 €', 'EUR');
检查 int 或 float
$digits = floor($value) == $value ? 0 : 2;
格式化
$formatter->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, $digits);
echo $formatter->formatCurrency($value, 'EUR');