文字列を float に変換したいのですが、問題があります。これが私のコードです
$dataValue = $item[$data];
$dataValue = trim($dataValue);
var_dump($dataValue);echo "<br>";
$dataValue = str_replace(',', '.', $dataValue);
var_dump($dataValue);echo "<br>";
var_dump(floatval($dataValue));echo "<br>";
var_dump(floatval('4.02'));echo "<br>";
そして結果
string(7) "4,02"
string(7) "4.02"
float(4)
float(4.02)
3 番目の結果がわかりません。なぜ 4.02 ではなく 4 なのですか?
ありがとう
編集:
私の新しいコード:
$dataValue = $item[$data];
echo mb_detect_encoding($dataValue) . "<br>";
$dataValue = iconv('ASCII', 'UTF-8//TRANSLIT', $dataValue);
$dataValue = trim($dataValue);
$dataValue = str_replace(',', '.', $dataValue);
echo mb_detect_encoding($dataValue) . "<br>";
var_dump($dataValue);echo"<br >";
$dataValue = mb_convert_encoding($dataValue, "UTF-8");
var_dump($dataValue);echo"<br >";
$dataValue = str_replace(',', '.', $dataValue);
$dataValue = floatval($dataValue);
var_dump($dataValue);echo"<br >";`
そして結果
ASCII
ASCII
string(7) "4.02"
string(7) "4.02"
float(4)