2017-09-26 9 views
0

printfドキュメントを読み直した後、%g属性を試してみました。私が2桁の数字で作業している場合、何がうまくいかないのでしょうか?printfと指数形式の問題

php -r "echo printf('%g', 123.4000);" 
123.45  // What? 
php -r "echo printf('%g', 123.4500);" 
123.456 // This can't be right 
php -r "echo printf('%g', '123.4000');" 
123.45 

私は123.4またはさらに1234e-1を期待していました。だから、私の推測は間違っていますか?

+0

にあなたのコードを書き換えることができます。 –

答えて

0

sprintfには、エコー、printfの出力文字数が出力されます。 だから、

string sprintf (string $format [, mixed $args [, mixed $... ]]) 
int printf (string $format [, mixed $args [, mixed $... ]]) 

それとも、指数は常に少なくとも2桁の数字が含まれ、必要に応じてのみなど、より多くの桁数は指数を表現するためにphp -r "printf('%g', '123.4000');"

+0

あなたは正しいです。私は –

+0

@ Alwin Keslerを使用していた機能に気付かなかった%g部分に焦点を当てていましたので、私の答えを受け入れてください。 –