2017-04-15 56 views
1

如果我有号码-4; -3.5; 0; 14.46PHP sprintf格式

我应该使用哪种sprintf格式?现在我正在使用%g,但这个打印给我14不是14,46为什么?由于

回答

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"; 
+0

%F给我'14,000000' – gSide

+0

你能分享你的问题的代码? – Hossam

+0

'echo sprintf('%s rating is%f',$ member-> name,$ member-> rating);' – gSide