Php 如何将字符串转换为带“float”的float;尾巴;?
Php 如何将字符串转换为带“float”的float;尾巴;?,php,string,floating-point,integer,decimal,Php,String,Floating Point,Integer,Decimal,我在将字符串转换为浮点时遇到问题 print gettype($value[$id]); //returns string var_dump($value[$id]);//returns string '34,7140' (length=7) $float = floatval($value[$id]); print gettype($float);//returns double var_dump($float);//returns float 34 echo $float;//r
我在将字符串转换为浮点时遇到问题
print gettype($value[$id]); //returns string
var_dump($value[$id]);//returns string '34,7140' (length=7)
$float = floatval($value[$id]);
print gettype($float);//returns double
var_dump($float);//returns float 34
echo $float;//returns 34
我不明白为什么是“34”?为什么$float不是“347140”如何获取$float=347140?因为“347140”是一个字符串,因为它包含逗号字符
您可以使用
$float=floatval(str_replace(',','','$value[$id])
删除逗号字符,或$float=floatval(str_replace(“,”,“.”,$value[$id])
将逗号替换为小数点,从而迫使PHP将数字解释为34.7140。PHP(以及大多数其他计算机语言)中的小数分隔符是点,而不是逗号:
<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>
问题在于,浮点应该是英文格式,小数部分之间用
分隔,而不是逗号。如果使用单个逗号时格式始终相同,请使用以下命令:
$float = (float)str_replace(',', '.', $value);
这不会把千位分隔符变成小数点吗(即34.714)。“你应该把逗号全部去掉,不是吗?”本,我觉得那不像是千分之一的分隔符。
$float = (float)str_replace(',', '.', $value);