PHP四舍五入加$符号

PHP To Round And Add $ Sign

我想将所有数字四舍五入并在前面添加一个$符号,没有小数。我尝试了下面的方法,它正确地四舍五入,但没有添加 $。在 $

中添加的语法是什么
$number = '122.86';

utf8_encode(money_format('%.0n',$number));

以上语法产生 123,我想要的输出是 $123

检查您的区域设置,因为它们会影响 money_format 的输出。在你的脚本顶部添加这个应该可以直接解决你的问题,但可能不是你真正想要做的:

setlocale(LC_MONETARY, 'en_US.UTF-8');

另一种选择是按照@chris85 的建议,手动提供美元符号:

echo '$' . utf8_encode(money_format('%.0n',$number));

去掉可能存在或不存在的任何美元符号可能值得也可能不值得,只是这样如果你部署到一个恰好有的系统,你就不会得到双美元符号不同的配置。

请使用 round() 函数进行值的舍入并用 $ 符号连接 使用此代码

<?php $number='122.86'; echo "$".round($number); ?>

在 PHP 文档的用户贡献注释中找到了您的 answer

$number = '122.86';
setlocale(LC_MONETARY, 'en_US.UTF-8');
echo utf8_encode(money_format('%.0n', $number));

将此作为社区 Wiki 发布,因为我基于 Balvinder's (original) answer

  • 我不想代表这个。

需要删除 intval(),因为那样会生成 122 而不是 123。

注:122.86比122更接近123;基础学校数学教学。

$number='122.86'; 
echo "$".round($number);

"round"吧。

注:

money_format() 在 Windows 中不起作用,只是为了让您和其他访问该问题的人知道。

"The function money_format() is only defined if the system has strfmon capabilities. For example, Windows does not, so money_format() is undefined in Windows."