我从excel表读取时遇到此问题我在csv中以科学格式获取条形码值。
如何解析原始值而不是科学数字?
示例: 9,96E + 12 [excel]
9960000000000 [我希望用CSV格式]
我在php中使用fgetcsv函数来解析csv文件。
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
)
我希望输出为
[0] => Array
(
[code] => FJT8-thr-thrtC2-VSXL
[barcode] => 9,96E+12
[amount] => 70
[status] => 1
)
答案 0 :(得分:0)
只要您将“,”转换为“。”,就可以使用floatval()和sprintf函数来回转换它。在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
?>