从我的数据库中我得到一个小数,如25.30。
在PHP中,我将这样的十进制乘以25.30 * 6.结果是151,8但是用逗号。
问题是结果会给我一个逗号,而不是像151.8这样的点。
是否有解决方案可以解决这个问题并获得结果?
答案 0 :(得分:2)
您想格式化您的号码。来自manual:
string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )
因此,例如在您的情况下,这将是:
print number_format($number, 1, '.', ',');
答案 1 :(得分:2)
尝试var_dump(localeconv());
,您可能会看到decimal_point
密钥为,
,因此(如果PHP5.3> =)尝试locale_set_default('en_US');
或使用(已弃用) setlocale
函数:setlocale
:
setlocale(LC_NUMERIC, 'en_US');
//or custom:
$locale = localeconv();
$locale['decimal_point'] = '.';
$setlocale(LC_ALL, $locale);
有关Locale
课程here的更多详情
在另一个apporach using setlocale
和getting localeconv
。
一个hacky快速修复也可能是:
$formatted = sprintf('%.1f',25.30 * 6);
但我建议你设置应该设置的语言环境。另请注意,在Windows上,setlocale(LC_ALL)
使用系统区域设置,如文档中所述:
在Windows上,setlocale(LC_ALL,'')根据系统的区域/语言设置(可通过控制面板访问)设置区域设置名称。