PHP sprintf格式

时间:2017-04-15 08:02:57

标签: php format printf

如果我有数字-4; -3.5; 0; 14.46

我应该使用什么sprintf格式?现在我正在使用%g,但这会为我打印14而不是14,46为什么?感谢

1 个答案:

答案 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";