我想要实现的是将数字转换为货币格式,以便在需要时添加小数点和逗号,但我不希望它显示货币符号。
我曾经使用 number_format 但它已被贬值以支持较新的功能。
我尝试过这个:
$val = "23";
$fmt = numfmt_create( 'en', NumberFormatter::CURRENCY);
// i tried the following
$num = numfmt_format_currency($fmt, $val); // omitted the 3rd parameter but caused error
$num = numfmt_format_currency($fmt, $val,null); // tried to null or blank the 3rd param but im getting a weird symbol / prefix
编辑:更正,我的意思是 Money_format 已贬值,而不是 number_format 。抱歉
最佳答案
为了简单起见,MultiSuperFreaks 的答案是最常见的。函数 number_format
并未以任何方式被弃用。
如果您想使用 intl 扩展和 NumberFormatter
类,您可以像...
$formatter = new NumberFormatter('en_GB', NumberFormatter::DECIMAL);
$formatter->setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, 2);
var_dump($formatter->format(23)); // string(5) "23.00"
只是不要使用 NumberFormatter::CURRENCY
类型。而是在实例化 NumberFormatter
类时使用 NumberFormatter::DECIMAL
类型,然后设置最少 2 个小数位的属性。
关于php - 如何将数字格式化为货币但不显示符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478386/