如果逗号后没有数字,将价格与货币转换为单个数字


Transform price with currency to single number if no numbers after comma

我有一个价格,假设是$price = 9,00 €。如果price逗号后面有两个0有没有简单的方法把它转换成9 € ?我的意思是,是否有相应的函数。如果这是不可能的字符,如何做到只有整数9,00> 9,但9,20将保持9,20

我知道它可以用substr或其他方式完成,但我想知道PHP是否有这种情况的函数

你必须使用NumberFormatter

$formatter = new NumberFormatter('de-DE', NumberFormatter::CURRENCY);

解析为float

$value = $formatter->parseCurrency('9,00 €', 'EUR');

检查是否为intfloat

$digits = floor($value) == $value ? 0 : 2;

重新格式化

$formatter->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, $digits);
echo $formatter->formatCurrency($value, 'EUR');