Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP sprintf格式_Php_Format_Printf - Fatal编程技术网

PHP sprintf格式

PHP sprintf格式,php,format,printf,Php,Format,Printf,如果我有数字-4-3.5; 0; 14.46 我应该使用什么sprintf格式?现在我使用的是%g,但是这个为我打印的14不是14,46为什么?感谢如中所述: 但是,%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"; ec

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

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

如中所述:

但是,
%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
是带有小数点字符
逗号的浮点字符

应用
str_replace(“,”,“,$member->rating)
应该可以解决这个问题

尝试:


%f给我
14000000
echo sprintf('%s评级为%f',$member->name,$member->rating)
问题似乎是
$member->rating=14.0
而不是14.46,检查上面的%g输出。使用
%s
一切正常,这是一个糟糕的解决方案吗?您是否会运行
var\u dump($member->rating)&按原样共享输出?
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
 */
echo sprintf('%s rating is %g', 'NAME', str_replace(',', '.', $member->rating))."\r\n";