如果我有数字-4; -3.5; 0; 14.46
我应该使用什么sprintf格式?现在我正在使用%g
,但这会为我打印14
而不是14,46
为什么?感谢
答案 0 :(得分:1)
如:http://php.net/manual/en/function.sprintf.php
中所述%f - the argument is treated as a float, and presented as a floating-point number
但是,%g
输出如下:
echo sprintf('%s rating is %g', 'NAME', -4)."\r\n";
echo sprintf('%s rating is %g', 'NAME', -3.5)."\r\n";
echo sprintf('%s rating is %g', 'NAME', 0)."\r\n";
echo sprintf('%s rating is %g', 'NAME', str_replace(',', '.', '1,74'))."\r\n";
/*
NAME rating is -4
NAME rating is -3.5
NAME rating is 0
NAME rating is 14.46
*/
我认为问题是$member->rating
是带有小数点字符comma
的浮点数。
应用str_replace(',', '.', $member->rating)
可以解决问题。
尝试:
echo sprintf('%s rating is %g', 'NAME', str_replace(',', '.', $member->rating))."\r\n";