-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 に答える