float和varchar中的Laravel 4和MYSQL列

时间:2015-01-20 21:49:58

标签: php mysql laravel-4

我对MySQL数据库中的某些表有问题,并使用Laravel4读取它。这是如何在浮动(6,2)coloumn价格时看起来像结果: float(6,2)

如果我将相同的列放入varchar(6),这看起来像是: varchar(6)

有人知道问题是什么以及如何解决?我有其他表与float(5,2)列和laravel显示结果正确。我只使用Model :: get()从数据库中获取数据,而Model(模型是两次表中的名称)很简单:

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

1 个答案:

答案 0 :(得分: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)));