我想在我的数据库中存储1个带有4位小数的数字。
如果我使用 float ,我只能添加2位小数
$table->float('sell');
如果我尝试十进制,我会收到错误
$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 customers
(id
int unsigned not null auto_increment primary key,sell
decimal(1,4)not null,
created_at
timestamp null,updated_at
timestamp null)默认字符集utf8 collate utf8_unicode_ci)
有任何帮助吗?
谢谢
答案 0 :(得分:7)
使用以下内容;
$table->decimal('foo', 5, 4);
第一个参数是总数,第二个参数是“十进制精度”。
答案 1 :(得分:3)
$table->decimal('your_field_name', 13, 4);
答案 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位。
由于