在Laravel5和mysql中,只有两个数字保存在double value的dot后面

kognpnkq  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(312)

我试图用laravel在mysql数据库中保存一个双值。但只有两位数字在点后保存。我在点后面有5个数字。例如,我的值是0.01197。但当我保存在数据库中时,它只显示0.01。其余数字不保存。
我使用的是带有php7.1.2和mariadb 10.1.29版本的laravel5.6。下面是我的db迁移代码:

public function up()
    {
        Schema::create('earnings', function (Blueprint $table) {
            $table->increments('id');
            $table->unsignedInteger('content_id');
            $table->foreign('content_id')->references('id')->on('contents');
          //this is the line for saving double value
            $table->double('income_in_usd', 10, 2);
            $table->timestamps();
        });
    }

以下是将值保存到db中的控制器代码:

$earning_id = DB::table('earnings')->insertGetID([
                                'month' => $request->month,
                                //here I am saving my double values
                                'income_in_usd' => $value['net_revenue'],
                                'exchange_rate' => $request->exchange_rate,
                                'income_in_bdt' =>  $value['net_revenue'] * $request->exchange_rate,
                                'content_id' => $content->id,
                            ]);

我尝试过将表列类型更改为float和decimal。但没有起作用。有人能在这里找到问题吗?提前谢谢。

6xfqseft

6xfqseft1#

在拉威尔:
双精度等效,共10位,小数点后2位。
因此,将迁移文件更改为:

$table->double('income_in_usd', 10, 5);

相关问题