【问题标题】:Laravel Schema Builder not setting the right digits amount on Double datatypeLaravel Schema Builder 未在 Double 数据类型上设置正确的位数
【发布时间】:2016-02-18 03:49:56
【问题描述】:

所以,我需要保存高达999,999,999,999.99 的金额,并且在 Laravel 的 Schema Builder 的文档中说我最多可以设置 15 位数字和 8 位小数,但这不起作用(@987654321 @)

在列类型中说:

$table->double('column', 15, 8); DOUBLE 等值精度,共 15 位,小数点后 8 位。

我迁移中的代码行如下:

$table->double('m1',12,2)->default(0)->nullable();

有什么想法吗?谢谢。

【问题讨论】:

  • 对于一个 14 位数字的开头,12 位数字是不够的。如果你使用这些变量来存储金额,那么你真的不应该使用浮点数。
  • @squeamishossifrage 据我了解,文档是 15 代表数字(因此 999,999,999,999 应该不是问题),8 代表小数。那我错了吗?为什么我应该使用浮点数?谢谢
  • 不,这意味着总共15位。整数类型对于货币值更安全,因为它们避免了舍入错误。
  • 谢谢你,把你的答案贴出来让我标记一下。

标签: php laravel laravel-schema-builder


【解决方案1】:

尝试使用:

 $table->decimal('m1',12,2)->default(0)->nullable();

如果你的价值观只是正面的......然后使用:

$table->decimal('m1',12,2)->unsigned()->default(0)->nullable();

对我有用!

【讨论】:

    猜你喜欢
    • 2018-01-28
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    相关资源
    最近更新 更多