使用 http://www.maatwebsite.nl/laravel-excel/ 导出到 CSV 和 Excel。
我有一个
$rows
数组,其中包含所有行及其列。
某些列具有使用
number_format(round((float)$number, 2 ), 2, '.', '');
格式化的数字。此 $number
是查询结果中的一列。
如果我 var_dump
$rows
每个数字的格式都正确。
当我这样做时
Excel::create($filename, function($excel) use ($rows) {
$excel->sheet('Sheet 1', function($sheet) use ($rows) {
$sheet->rows($rows);
});
})->export('csv');
它导出到 CSV(如果我选择 Excel,也会发生同样的情况)并且某些列错误地显示数字,例如
82.70999999999999
而不是 82.71
找不到解决此问题的方法
当您格式化列时,请尝试这个直接的解决方案:
$number = 82.70999999999999;
$float_string = sprintf("%.2f", $number); // $float_string = "82.71";
这将取代您的
number_format(round((float)$number, 2 ), 2, '.', '');
希望有帮助~!