如何将php字符串转换为浮点值并保留十进制值



我有一个价格为'23,99'的字符串,如何用php将其转换为float?

$price = '23,99';
$price_float = floatval($price);
echo $price_float;

正如您已经发现的,您可以用.替换,。还有另一种方法可能也很有用。使用NumberFormatter类,可以用不同的方式格式化数字。基于区域设置以及使用不同的格式化程序,如货币百分比科学。有关所有选项,请参阅文档。在您的情况下,使用葡萄牙的语言环境,您可以使用:

$price = '23,99';
$numberFormatter = new NumberFormatter("pt-PT", NumberFormatter::DECIMAL);
echo $numberFormatter->parse($price); // Wil output the float 23.99

好吧,因为我没有找到任何php解决方案,并且假设","是分隔符,所以我制作了这个函数来克服

function floatdec($a){
$b = explode(',',$a);
return floatval($b[0]) + floatval($b[1])/100;
}
$price = '23,99';
echo floatdec($price).'<br>';
echo gettype(floatdec($price));

几个小时后。。。我发现在字符串中添加0(即+ 0(会使其成为整数或双精度,该字符串只需要带小数点即可。

function floatdec($a){
return str_replace(",",".",$a) + 0;
}

最新更新