我有以下号码:
-4
、-3.5
、0
、14.46
我应该使用哪种
sprintf()
格式?
现在我正在使用
%g
,但这会从 14
打印 14,46
。为什么会出现这种情况?
如所述: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";