在 Laravel 11 迁移中使用浮动列

问题描述 投票:0回答:1

Laravel 11 的升级说明说:

浮点列类型现在创建一个

FLOAT
等效列,没有总位数和位数(小数点后的位数),但具有可选的
$precision
规范来确定存储大小为 4 字节单精度列或 8-字节双精度列。因此,您可以删除
$total
$places
的参数,并根据数据库文档将可选的
$precision
指定为您所需的值:

$table->float('amount', precision: 53);

但是,数据库文档没有提供任何解释

precision
参数可能代表什么或为什么它默认为 53。更改值会对结果列产生什么影响?

php mariadb laravel-migrations laravel-11
1个回答
0
投票

不打算自我回答,但我想检查一下MySQL的文档并得到了答案:

对于

FLOAT
,SQL 标准允许在括号中的关键字
FLOAT
后面以位为单位指定精度(但不是指数范围),即
FLOAT(p)
。 MySQL 也支持这种可选的精度规范,但
FLOAT(p)
中的精度值仅用于确定存储大小。 0 到 23 的精度会产生 4 字节单精度
FLOAT
列。 24 到 53 的精度会产生 8 字节双精度
DOUBLE
列。

所以我认为这意味着我的旧迁移与

$table->float('price', 6)
应该继续按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.