如何在 PHP 中以加号作为正数前缀

2022-08-30 15:26:20

我需要设计一个函数来返回不变的负数,但如果它已经不存在,则应在数字的开头添加一个符号。+

例:

Input     Output
----------------
+1         +1
1          +1
-1         -1

它将仅获取数字输入。

function formatNum($num)
{
# something here..perhaps a regex?
}

这个函数将被调用几次,所以越快越好。echo/print


答案 1

您可以将正则表达式用作:

function formatNum($num){
    return preg_replace('/^(\d+)$/',"+$1",$num);
}

但我建议不要用于这种微不足道的事情。最好在这里使用sprintf作为:regex

function formatNum($num){
    return sprintf("%+d",$num);
}

来自 PHP Manual for sprintf

一个可选的符号说明符,它强制对数字使用符号(- 或 +)。默认情况下,如果数字为负数,则仅对 - 符号使用 。此说明符强制正数也附加 + 号,并在 PHP 4.3.0 中添加。


答案 2
function formatNum($num) {
   return ((float) $num>0)?'+'.$num:$num;
}

推荐