我的代码与此相似
$points = -2;
$points = +2;
我想将它们显示为包含 - 或+的字符串。这适用于 - 但不适用于+
我试过这个试图获得正号
echo (string)$points;
有什么想法吗?
答案 0 :(得分:2)
省略正号,因为如果数字不是负数,则为正数。
你必须使用各种功能:
function format_sign($number) {
$number = int($number);
if ($number > 0) {
return "+" . $number;
} else {
return $number;
}
}
你可以像这样使用它:
$n = -10;
echo format_sign($n);
不,我撒了谎。 sprintf()
似乎是一个更好的解决方案:
function format_sign($number) {
return sprintf("%+d", $number);
}
答案 1 :(得分:1)
正如Kerrek所说,你可以使用printf,或者你可以使用三元语句:
echo ($points > 0 ? '+' . $points : $points);
使用printf,那就是:printf('%+d', $points);
使用printf意味着您还可以指定指定的宽度和小数位数,如果您尝试获取特定的格式,这可能会派上用场。
答案 2 :(得分:0)