PHP:sprintf - 没有加号的零

时间:2017-09-08 05:14:05

标签: php regex printf

我试图在负数前加减号,在正数前加号。我正在使用sprintf。

sprintf("%+d",$voteCount)

这是正常的,除了零。我不想在零之前加号。 如何让它显示所有正数的加号,但没有零的符号?

1 个答案:

答案 0 :(得分:2)

没有直接的方法来实现这一目标,因为%d只会考虑正面和负面的迹象。

但是,是的,有另外一种方法来实现这一目标,

echo ($voteCount === 0 ? 0 : sprintf("%+d",$voteCount));

这可以解决您的问题。

编辑(由AliveToDie建议):

您可以使用gmp_sign完成相同操作。

以下是它的参考示例。

// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";

同样,你需要在php.ini中启用扩展

extension=php_gmp.so