我正在从MySQL表中检索数据。这个数据是字符串值,我更喜欢使用浮点数。这就是我正在做的事情:
$array_duracao = $con->prepare("SELECT SUM(dt)/0.01666667 AS mysum FROM afunda_eleva");
$array_duracao->execute();
$result3 = $array_duracao->fetch(PDO::FETCH_NUM);
$duracao_afunda_eleva[] = $result3;
for($i=0;$i<sizeof($duracao_afunda_eleva);$i++)
{
$duracao_afunda_eleva1[]=settype($duracao_afunda_eleva[$i],"float");
}
当我致电var_dump($duracao_afunda_eleva1)
时,会显示以下内容:
array(3) {
[0]=> float(1)
[1]=> float(1)
[2]=> float(1)
}
当我致电var_dump($duracao_afunda_eleva)
时,会显示以下内容:
array(3) {
[0]=> array(1) {
[0]=> string(9) "3.6599993"
}
[1]=> array(1) {
[0]=> string(9) "7.0199986"
}
[2]=> array(1) {
[0]=> string(9) "1.3799997"
}
}
如何将数组值从字符串更改为浮点数?
答案 0 :(得分:1)
我从var_dump($duracao_afunda_eleva)
看到 - $duracao_afunda_eleva
是一个多维数组。因此,如果你想要对数组值进行类型转换,你应该使用数组值而不是数组本身,你的代码应该是(感谢@Barmar):
for($i=0; $i<sizeof($duracao_afunda_eleva); $i++) {
$duracao_afunda_eleva1[] = floatval($duracao_afunda_eleva[$i][0]);
}
答案 1 :(得分:0)
$float = (float) "1.234";
答案 2 :(得分:-1)
更改
$duracao_afunda_eleva1[]=settype($duracao_afunda_eleva[$i],"float");
到
$duracao_afunda_eleva1[]=floatval($duracao_afunda_eleva[$i]);