2014-06-17 3 views
1

이 링크에서 csv 업로드를 만듭니다. http://www.yiiframework.com/wiki/401/simple-csv-export 형식을 잘못하면 double 값에서 소수점 이하 자릿수가 손실됩니다. 12 (CFormatter는 simple-csv-export 확장자로 십진수를 잃습니다.

foreach ($rows as $row) { 
    $r = ''; 
    foreach ($coldefs as $col => $config) { 

    if (isset($row[$col])) { 
     $val = $row[$col]; 
     FilesFuncs::DebToFile('$col::' . print_r($col, true), false); 
     FilesFuncs::DebToFile('$val::' . print_r($val, true), false); // HERE $val is WITH decimals 
     foreach ($config as $conf) 
     if (!empty($conf)) { 
      $val = Yii::app()->format->format($val, $conf); // debugging to file : i see result double values returns WITHOUT decimals 
... 

더블 가격 설명 데이터베이스 필드 :

$dst_filename= 'registers-upto--' . strftime("%Y-%m-%d-%H-%M-%S") . ".csv"; 
CsvExport::export($GoodsList, 
array( 'good_id'=>array('number' ,'fixed8'), 
'name'=>array(), 
'price'=>array('number' ,'money' ), // MONEY TYPE 
'discount'=>array('number' ,'fixed8'), 

CsvExport.php 파일에서 :

이 클래스는 내가 실행 제어에서이

<?php 

class MyFormatter extends CFormatter 
{ 
... 
    public function formatMoney($value) 
    { 
     FilesFuncs::DebToFile('formatMoney $value::' . print_r($value, true), false); // debugging to file : i see result double values WITHOUT decimals 
     return round(floatval($value),2); 
    } 
... 

처럼 보인다 , 2). 문제는 무엇이며이를 고치는 방법은 무엇입니까? 내가 YII 1.1.14

답변

0

을 사용하고

은 어쩌면 전화 번호 형식은 쉼표 (','가) 숫자와 소수점 이하 자릿수 사이를 분리하는 데 사용? 이 경우 숫자를 큰 따옴표 (")로 묶어야 번호가 쉼표로 구분되지 않습니다.

또한 CsvExport$separator 옵션을 설정하거나 오류를 방지하려면 "," 이외의 값으로 서브 클래스를 만드십시오.