2015-01-20 105 views
1

我在MySQL數據庫中有一些表有問題,並用Laravel4讀取它。這怎麼看都像是結果把浮動(6,2)coloumn價格時: float(6,2)Laravel 4和MYSQL coloumn在float和varchar

這是看起來像如果我把相同的列到VARCHAR(6): varchar(6)

是否有人知道什麼是問題以及如何解決它?我有其他表與浮動(5,2)列和laravel顯示結果正確。我只用型號:: get()方法來得到數據庫和模型數據(型號爲表的名稱在這兩個時間)很簡單:

class Model extends Eloquent 
{ 
use SoftDeletingTrait; 
protected $dates = ['deleted_at']; 
protected $primaryKey = 'idreceive'; 
protected $table = 'model'; 
} 
+1

我的第一個猜測是你用逗號','來分隔浮點數,但系統想要一個點'.' – Mathlight 2015-01-20 21:52:25

+0

是的......它是:)我沒有在phpmyadmin中看到它!非常感謝你! – 2015-01-20 21:55:25

+0

好吧,我會回答這個問題然後... – Mathlight 2015-01-20 21:57:03

回答

0

的問題是,您使用的是逗號,而不是,的點.來分隔浮點數。

所以,你需要你輸入這個轉換:

121,51

要這樣:

121.15

Here's an SO question on how to solve this problem

代碼從答案:

$string_number = '1.512.523,55'; 
// NOTE: You don't really have to use floatval() here, it's just to prove that it's a legitimate float value. 
$number = floatval(str_replace(',', '.', str_replace('.', '', $string_number)));