【问题标题】:Laravel - Number with 4 decimalsLaravel - 带 4 位小数的数字
【发布时间】:2017-02-27 12:41:31
【问题描述】:

我想在我的数据库中存储 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 '  

卖出')。 (SQL: create table customers (id int unsigned not null auto_increment 主键, sell decimal(1, 4) not null,
created_at timestamp null, updated_at timestamp null) 默认字符集utf8 整理 utf8_unicode_ci)

有什么帮助吗?

谢谢

【问题讨论】:

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


    【解决方案1】:

    使用以下内容;

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

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

    【讨论】:

    • 没问题,confm :-)
    【解决方案2】:

    你在参数上犯了一个小错误

    $table->decimal('amount', 5, 2);
    

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

    【讨论】:

      【解决方案3】:

      请关注代码

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

      谢谢

      【讨论】:

        【解决方案4】:

        在您的架构文件中。

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

        【讨论】:

        • 适用于 laravel 8。完美
        【解决方案5】:

        试试 number_format

        对于 laravel:

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

        对于原始 PHP:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-22
          • 1970-01-01
          • 2010-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-26
          • 2016-03-01
          相关资源
          最近更新 更多