【问题标题】:PHP To Round And Add $ SignPHP 舍入并添加 $ 符号
【发布时间】:2017-02-24 19:33:07
【问题描述】:

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

$number = '122.86';

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

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

【问题讨论】:

  • @chris85 - 不要关注...
  • 像其他字符串一样连接utf8_encode('$' . money_format('%.0n',$number));
  • 顺便说一句,money_format() 在 Windows 中不起作用,只是让您知道和其他访问该问题的人。 “只有在系统有strfmon能力的情况下才定义函数money_format()。例如Windows没有,所以在Windows中没有定义money_format()。”
  • 那是一个,还是一个。
  • 查看手册中的示例

标签: php format currency


【解决方案1】:

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

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

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

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

去掉可能存在或不存在的任何美元符号可能值得,也可能不值得,这样,如果您部署到恰好具有不同配置的系统,就不会出现双美元符号.

【讨论】:

  • 如果我使用 echo 示例,它会四舍五入,添加 $ 符号,但所有行都显示 0
  • @NadineSmithJonesPicard 我刚刚离开了你的小例子,听起来你在获取$number 内部的数据时可能还有一些问题?
【解决方案2】:

由于我以Balvinder's (original) answer 为基础,因此将其作为社区 wiki 发布。

  • 我不想为此做代表。

intval() 需要删除,因为这将产生 122 而不是 123。

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

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

"round"吧。

注意:

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

“只有在系统有strfmon能力的情况下才定义函数money_format()。例如Windows没有,所以在Windows中没有定义money_format()。”

【讨论】:

  • 这会产生一个 $ 符号,但所有值都是 0。
  • @NadineSmithJonesPicard 我觉得这很难相信。我也在 Windows 上,这产生了$123
  • @NadineSmithJonesPicard 我认为你没有告诉我们/我整个故事。抱歉,我无法在我的答案中添加任何内容。
【解决方案3】:

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

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

【讨论】:

  • 关闭,但 OP 想要 123 而不是 122,这将产生
  • 请使用 ceil() 函数获取最高值
  • 仍然产生 122
  • 你去编辑了,没有将其标记为编辑,我确定你只是想要代表,我当然不想要。
  • $number='122.86'; echo "$".round($number);使用这个
【解决方案4】:

在 PHP 文档的用户贡献说明中找到您的 answer

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

【讨论】:

  • 这会产生小数。我的输出是 0.00
  • 已修复。 (将%.2n 更改为$0.n
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2014-08-31
  • 2011-10-19
  • 1970-01-01
  • 2019-06-26
  • 1970-01-01
相关资源
最近更新 更多