【发布时间】:2017-03-31 12:00:14
【问题描述】:
使用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
找不到解决方法
【问题讨论】:
-
你是怎么把它打印成 CSV 的?
-
向我们展示相关代码。
$number是什么,您在哪里构建 CSV?另外,您之后如何访问 CSV? -
分享更多你如何为 csv 赋予价值的代码?
-
让我猜猜
$number是。等一下,你告诉我们怎么样? -
我已经尝试过这样做,它正在将数据正确放入 CSV。
<?php $number = 87.6546546546546546546; $number = number_format(round((float)$number, 2 ), 2, '.', ''); echo $number; $handle = fopen("test.csv", "w"); fputcsv($handle, array($number)); fclose($handle); ?>这是你正在做的同样的事情吗?
标签: php floating-point rounding precision number-formatting