2015-01-20 97 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)));