PHP:sprintf - 没有加号的零
Posted
技术标签:
【中文标题】PHP:sprintf - 没有加号的零【英文标题】:PHP: sprintf - zero without plus sign 【发布时间】:2017-09-08 05:14:05 【问题描述】:我试图在负数之前获得减号,在正数之前获得加号。我正在使用 sprintf。
sprintf("%+d",$voteCount)
这一切正常,除了零。我不想在零之前加号。 如何让它显示所有正数的加号,但不显示零符号?
【问题讨论】:
不重复!!!请重新打开它。浏览问题的最后一段。 这是您解决问题的替代方案... echo ($voteCount === 0 ? 0 : sprintf("%+d",$voteCount)); 使用:- php.net/manual/en/function.gmp-sign.php 通过在 php.ini 文件中禁用extension=php_gmp.so
谢谢@AlivetoDie:这对我来说是新的
@RahulMeshram 您可以将其添加到注释部分的答案中
【参考方案1】:
没有直接的方法可以实现这一点,因为 %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
【讨论】:
以上是关于PHP:sprintf - 没有加号的零的主要内容,如果未能解决你的问题,请参考以下文章