2017-09-08 1 views
-1

서명합니다. sprintf를 사용하고 있습니다.PHP : sprintf와 - 제로없이 플러스 내가 음수 전에 마이너스 기호를 얻을 플러스 긍정적 인 것들 전에 서명하기 위해 노력하고있어

sprintf("%+d",$voteCount) 

0은 예외입니다. 저는 제로 앞에 더하기 기호를 원하지 않습니다. 모든 양수에 대해 더하기 기호를 표시하도록하려면 어떻게 가져올 수 있지만 0에 대한 기호는 없습니까?

+1

그것은 중복되지에서 확장을 활성화해야합니다 !!!! 다시 열어주세요. 질문의 마지막 부분을 살펴보십시오. http://php.net/ - : * – rahulsm

+2

여기 문제 ... * 에코 (?의 sprintf ("% + D", $ voteCount) $의 voteCount의 === 0, 0)에 대한 대안 솔루션입니다 php.ini의 파일 – rahulsm

+1

사용; –

답변

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 
관련 문제