2017-09-08 25 views
-1

マイナス記号の前にマイナス記号を、プラス記号の前にプラス記号を入れようとしています。私はsprintfを使用しています。PHP:sprintf - プラス記号なしのゼロ

sprintf("%+d",$voteCount) 

これはゼロを除いて問題なく動作しています。私は0の前にプラス記号が欲しくない。 すべての正の数に対してプラス記号を表示するにはどうすればよいのですが、ゼロの記号はありませんか?

+1

に拡張子を有効にする必要があります!!!!再開してください。質問の最後のパラを見てください。 – rahulsm

+2

あなたの問題の代替ソリューションはここにあります。* echo($ voteCount === 0?0:sprintf( "%+ d"、$ voteCount)); * – rahulsm

+1

使用: - http://php.net/ php.iniファイル内の 'extension = php_gmp.so'を無効にしてmanual/en/function.gmp-sign.phpを編集してください –

答えて

2

これを達成するための直接的な方法はありません。%dは、何が起こったとしても正と負の符号のみを考慮します。

しかし、はい、次のようにこれを達成するための別の方法があり、

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

これはあなたの問題を解決する必要があります。

EDIT(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 
関連する問題