phpexcel读取不正确的十进制值

phpexcel reading incorrect decimal values

我在 excel sheet 中有一些值为 75.466.8,还有一些值为整数 24554。在数据库中,我将列类型设置为 varchar(11)。问题是一些十进制值显示正确,一些显示为 75.4000000000000173.6 被读取为 73.59000000。我有 2 个环境,一个本地 m/c 和一个工作区。在我的本地 m/c 它显示正确。所以,我不明白可能是什么问题。以下是我的代码

$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();

$getValues = array();

for ($row = 4; $row <= $highestRow; $row++){
    //  Read a row of data into an array
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row); //gives the sheet values
    if(!empty($rowData[0][0])){ //if row is null
        //  Insert row data array into database
        $getValues[] = $this->getValuesModel($rowData, $data);
    }

}

我怀疑可能有一些 php 配置设置,因为本地和服务器不同但不确定。请指导我完成此操作。

在深入研究之后,我得到了解决方案。我们可以执行以下两个选项之一:

  1. 问题不在于 phpexcel,而在于 excel sheet 中定义的单元格的 format。它被赋予 General ,我将其更改为 Number 现在值与 excel sheet.
  2. 覆盖ini文件中的浮点数精度。 PHPExcel 修改精度,因此我们应该这样做:

     $iniPrecision = ini_get('precision');
     $objPHPExcel    = PHPExcel_IOFactory::load($inputFilename);
     ini_set('precision', $iniPrecision);