Laravel - 4位小数

时间:2016-10-18 09:45:44

标签: sql laravel laravel-5 eloquent laravel-5.2

我想在我的数据库中存储1个带有4位小数的数字。

如果我使用 float ,我只能添加2位小数

$table->float('sell');

enter image description here

如果我尝试十进制,我会收到错误

$table->decimal('sell', 1, 4);

第一个数字必须大于或等于第二个数字。

SQLSTATE[42000]: Syntax error or access violation: 1427 For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '  

销售&#39)。 (SQL:create table customersid int unsigned not null auto_increment primary key,sell decimal(1,4)not null,
   created_at timestamp null,updated_at timestamp null)默认字符集utf8 collat​​e utf8_unicode_ci)

有任何帮助吗?

谢谢

5 个答案:

答案 0 :(得分:7)

使用以下内容;

$table->decimal('foo', 5, 4);

第一个参数是总数,第二个参数是“十进制精度”。

答案 1 :(得分:3)

$table->decimal('your_field_name', 13, 4);
  • 您的字段名 =数据库字段名。
  • 13 =总位数。 示例- $ 99,999,999,999.99
  • 4 =小数点后的值。 示例-999,999,999美元。 9999

答案 2 :(得分:1)

试试 number_format

对于 Laravel:

{!! number_format((float)($item->amount), 5) !!}

对于原始 PHP:

number_format((float)($yourVariable), 5)

答案 3 :(得分:0)

您在参数

中犯了一个小错误
$table->decimal('amount', 5, 2);

在上面的示例中,第一个参数是字段名称。 其次,参数是总长度。 第三,参数是浮点值。

答案 4 :(得分:0)

请遵循以下代码

$table->float('sell', 5, 4); FLOAT等效于数据库,总共5位数,小数点后4位。

由于