2016-06-11 42 views
0

當我想要將十進制數字存儲爲像mysql(**)(8,4)這樣的十進制字段,但它並沒有完全存儲。即** 13850存儲爲13.0000。 這是我在控制器(Laravel)代碼:十進制數並不像預期的那樣存儲在mysql中

$getRate = DB::table('currency_rates') 
     ->select('crt_id','buy_rate')->orderBy('created_at','desc')->first(); 
     $rate = $getRate->buy_rate; 
     $c_price = ($unit_price*$rate); 
     $expense->c_price = number_format($c_price,4); 
     $expense->c_total = number_format($quantity*$c_price,4); 
//   dd(number_format($quantity*$c_price,4)); 
     $expense->rate_id = $getRate->crt_id; 

您的幫助非常感激。

回答

1

DECIMAL(8,4)表示該數字最多可以有8位數字,其中4位必須在該點之後,因此您的範圍是-9999.9999至9999.9999。

你必須讓更多的數字存儲13850.

UPDATE:存儲號碼數據庫之前,不要使用number_format(),僅顯示在使用它。
Number_format使用逗號作爲千位分隔符,但逗號不能存儲在mysql中的任何數字字段中。

number_format(13850,4)返回字符串「13,850.0000」,這就是爲什麼你得到13存儲在數據庫中。

+0

感謝您的回覆,並且您的意思是我增加了像(16,4)這樣的位數? – Khodadad

+0

仍然無法正常工作。 – Khodadad