-1

我正在从 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"
    } 
} 

如何将数组值从字符串更改为浮点数?

4

3 回答 3

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]);
}
于 2013-10-10T19:46:07.573 回答
0
$float = (float) "1.234";

演示:http ://codepad.viper-7.com/I6wsAl

于 2013-10-10T19:41:30.133 回答
-1

改变

$duracao_afunda_eleva1[]=settype($duracao_afunda_eleva[$i],"float");

$duracao_afunda_eleva1[]=floatval($duracao_afunda_eleva[$i]);
于 2013-10-10T19:41:33.167 回答