2017-09-26 101 views
0

重新读取printf文档后,我想尝试%g属性。如果我使用两位数字,可能会出错,对吧?与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和echo,printf输出打印的字符数。 所以

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

或者你可以重写你的代码php -r "printf('%g', '123.4000');"

+0

你说得对。我非常关注%g部分,但没有注意到我使用的函数 –

+0

@Alwin Kesler,请检查我的答案是否已被接受。 –