2016-11-17 4 views
0

Использование http://www.maatwebsite.nl/laravel-excel/ для экспорта в CSV и Excel.номер раунда php. Когда echo отображает 2 десятичных знака, если отображается в CSV, он отображает .0999999

У меня есть массив $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

Не можете найти способ, чтобы исправить это

+1

Как вы напечатали его в CSV? –

+2

Покажите нам соответствующий код .. Что такое '$ number' и где вы строите CSV? Также как вы получаете доступ к CSV после? – chris85

+0

Поделитесь больше кода, как вы ставите ценность в csv? – C2486

ответ

0

при форматировании колонки попробовать это прямо вперед решение:

$number = 82.70999999999999; $float_string = sprintf("%.2f", $number); // $float_string = "82.71";

Это заменит ваш number_format(round((float)$number, 2), 2, '.', '');

Надеется, что это помогает ~!

Смежные вопросы