3

我用

money_format('%(#15.2n',$money)

它输出类似

$ 500.00

有没有办法去掉美元符号和 500 之间的空格?

4

6 回答 6

8

money_format[文档]甚至可能无法在某些平台上运行。number_format使用[ docs ]会更可靠:

echo '$' . number_format($money, 2); // '$12.44'

如果您希望它填充到一定数量的空格,但在数字之前使用美元符号,您也可以使用sprintf[ docs ]

echo printf("%15s", '$' . number_format($money, 2)); // '         $12.44'
于 2011-09-09T18:07:18.513 回答
1

使用 str_replace(" ", "", $string)

于 2011-09-09T18:04:33.673 回答
1

删除多余的空格相当简单。您使用的代码实际上是添加填充。文档中的一个示例money_format

// 美国国家格式,使用 () 表示负数
// 10 位表示左精度
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($ 1,234.57)

#15你的例子中是罪魁祸首。如果您要查看pre标签内的引​​用,您实际上会看到填充到 15 个空格的数字。

 $                500.00 

如果你删除它...

money_format('%(.2n',$money)

你会得到:

$500.00

您也可以删除(以不将负数括在括号中(替代方法是 a-在开头)。如果您实际上仍然想要那个以及您在预期结果中引用的单个空格,您可以尝试:

money_format('%(#4.2n',$money)
于 2015-12-30T16:51:07.463 回答
0
$str = preg_replace('/\s\s+/', ' ', $str);
于 2011-09-09T18:05:28.867 回答
0

这就是我使用的:

function my_money_format($number){
    return str_replace(" ", "",money_format('%+#10n', $number));
}
于 2013-12-10T21:52:38.053 回答
-2
echo money_format('$%i', $number)
于 2014-02-25T15:25:10.353 回答