在php电子商务实施中,我的购物车价格为$ 20.00或$ 0.00(如果是空车)。要过滤此字符串中的数字,我正在使用以下
// $ total可能是“$ 20.00”或“$ 0.00”或“$ 10,000.00”等
$total = "$20.00";
return floatval( preg_replace( '/[^0-9,.]/', '', $total) );
当其值大于0但在空车推车中失败时,它的作用。总是返回360的奇怪值!
预期输出如下,
Input Output
$20.00 20
$0.00 0
$10,000.00 10000
答案 0 :(得分:1)
答案 1 :(得分:1)
由于这是货币,我建议您使用适当的工具,即NumberFormatter:
示例:
$fmt = new NumberFormatter("en_US",NumberFormatter::CURRENCY);
$fmt->parse("$10,123,234.23"); //Returns 10123234.23
$fmt->parse("$0.00"); //Returns 0
如果您愿意,这也具有允许未来国际化的优势。但是,这确实需要安装Internationalization Functions扩展名。