PHP无法识别1,200.00(由生成number_format),但只能识别1200.00,
1,200.00
number_format
1200.00
这个问题的一般解决方案是什么?
您可以删除不是数字或小数点的任何字符,并使用解析该字符floatval:
floatval
$number = 1200.00; $parsed = floatval(preg_replace('/[^\d.]/', '', number_format($number))); var_dump($number === $parsed); // bool(true)
并且如果数字不.为小数点:
.
function parse_number($number, $dec_point=null) { if (empty($dec_point)) { $locale = localeconv(); $dec_point = $locale['decimal_point']; } return floatval(str_replace($dec_point, '.', preg_replace('/[^\d'.preg_quote($dec_point).']/', '', $number))); }