在PHP中乘以十进制数

时间:2013-06-19 09:14:38

标签: php

从我的数据库中我得到一个小数,如25.30。

在PHP中,我将这样的十进制乘以25.30 * 6.结果是151,8但是用逗号。

问题是结果会给我一个逗号,而不是像151.8这样的点。

是否有解决方案可以解决这个问题并获得结果?

2 个答案:

答案 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 setlocalegetting localeconv

一个hacky快速修复也可能是:

$formatted = sprintf('%.1f',25.30 * 6);

但我建议你设置应该设置的语言环境。另请注意,在Windows上,setlocale(LC_ALL)使用系统区域设置,如文档中所述:

  

在Windows上,setlocale(LC_ALL,'')根据系统的区域/语言设置(可通过控制面板访问)设置区域设置名称。