2017-07-21 3 views
0

excelシートを読みながらこの問題が発生しました。私はcsvで科学的フォーマットでバーコード値を取得しています。excelから読み取った科学的数値をCSVに変換する

科学的な数字の代わりに元の値を解析するにはどうすればよいですか?

例:[Excelで] 9,96E + 12

9960000000000 [私はCSVでこれをしたい]

私はcsvファイルを解析するためにPHPでfgetcsv関数を使用しています。私は取得しています

while (($row = fgetcsv($handle, 1000, ';')) !== FALSE) 
{ 
    if(!$header) 
     $header = $row; 
    else 
     $data[] = array_combine($header, $row); 
} 

出力:

[0] => Array 
    (
     [code] => FJT8-thr-thrtC2-VSXL 
     [barcode] => 9960000000000 
    [amount] => 70 
    [status] => 1 
) 

私はあなたがいる限り、前後にそれを変換するためにfloatval()sprintf機能を使用することができます

[0] => Array 
    (
     [code] => FJT8-thr-thrtC2-VSXL 
     [barcode] => 9,96E+12 
     [amount] => 70 
     [status] => 1 
    ) 
+0

これらはすべて一貫してX、XXE + YY形式ですか? – yanman1234

+0

この投稿は参考になるかもしれません:https://stackoverflow.com/questions/10916675/display-float-value-w-o-scientific-notation –

+0

@ yanman1234 Excelシートをアップロードしたユーザーに返信してください。 –

答えて

0

として出力したいです"、" to "に変換してください。" PHPで数値を使用する前に

<?php 

$start = '9,96E+12'; 
$str = floatval(str_replace(',','.',$start)); 

// Proof of concept 
echo $start."<br />"; // starting off with 9,96E+12 
echo $str."<br />"; // Converted number is 9960000000000 
echo sprintf('%.2e',$str); // back to scientific number 9.96e+12 


?> 
関連する問題