我想对所有数字进行舍入,并在前面添加一个$符号,没有小数。我尝试了以下,它正在四舍五入,但没有添加$。在$
中添加的语法是什么$number = '122.86';
utf8_encode(money_format('%.0n',$number));
上面的语法产生123,我想要的ouptut是$ 123
答案 0 :(得分:2)
检查您的区域设置,因为它们会影响{{3}}的输出。在脚本顶部添加此项可以直接修复您的问题,但可能不是您真正想要做的事情:
setlocale(LC_MONETARY, 'en_US.UTF-8');
另一种选择是按照@ chris85的建议,只需手动提供美元符号:
echo '$' . utf8_encode(money_format('%.0n',$number));
删除任何可能存在或可能不存在的美元符号可能是也可能不值得,只是因为如果部署到恰好具有不同配置的系统,就不会出现双美元符号
答案 1 :(得分:2)
将此作为社区维基发布,因为我基于Balvinder's (original) answer。
intval()
需要删除,因为这将产生122而不是123.
注意:122.86接近123而不是122;基础学校数学教学。
$number='122.86';
echo "$".round($number);
只需"round"。
注意:
money_format()
在Windows中不起作用,只是让您知道和其他人访问该问题。
“函数money_format()仅在系统具有strfmon功能时定义。例如,Windows没有,因此在Windows中未定义money_format()。”
答案 2 :(得分:0)
请使用round()函数进行圆值并与$ sign连接 使用此代码
<?php $number='122.86'; echo "$".round($number); ?>
答案 3 :(得分:-1)
在PHP文档的用户贡献说明中找到了您的answer。
$number = '122.86';
setlocale(LC_MONETARY, 'en_US.UTF-8');
echo utf8_encode(money_format('%.0n', $number));