mysql - 十进制数未按预期存储在 mysql 中

标签 mysql laravel-5

当我想在 mysql 十进制字段中存储十进制数字时,格式如 **(8,4),但它没有完全存储。即 **13850 存储为 13.0000。 这是我在 Controller (Laravel) 中的代码:

$getRate = DB::table('currency_rates')
        ->select('crt_id','buy_rate')->orderBy('created_at','desc')->first();
        $rate = $getRate->buy_rate;
        $c_price = ($unit_price*$rate);
        $expense->c_price = number_format($c_price,4);
        $expense->c_total = number_format($quantity*$c_price,4);
//            dd(number_format($quantity*$c_price,4));
        $expense->rate_id = $getRate->crt_id;

非常感谢您的帮助。

最佳答案

DECIMAL(8,4) 表示数字最多可以有 8 位,其中 4 位必须在小数点之后,因此您的范围是 -9999.9999 到 9999.9999。

你必须允许更多的数字来存储 13850。

更新:在将数字存储到数据库之前不要使用 number_format(),仅在显示时使用它。
Number_format使用逗号作为千位分隔符,但逗号不能存储在mysql的任何数字字段中。

number_format(13850, 4) 返回字符串“13,850.0000”,这就是将 13 存储在数据库中的原因。

关于mysql - 十进制数未按预期存储在 mysql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37767428/

相关文章:

php - 在 PHP/MySQL 中将日期时间存储为 UTC

mysql - MySQL 同一行中两个行字段之间的数据交换

MySQL 多重连接和不同计数

php - 需要检查用户在我的网站 Laravel 5.2 上注册了多长时间

php - 向 Laravel 5 调度程序添加自定义方法

mysql - 我无法理解存储过程的重要性

php - 如何在 Blade 文件名中包含一个句号 (.) 的 Blade 文件

laravel - 如何在 laravel 中打印模型查询

php - Laravel 从 'belongsTo' 关系获取 'hasMany' 关系

mysql - Laravel-我需要帮助将 user_id 传递给 SQL 数据库中的 tasks_table 错误:调用未定义的方法 App\\User::id()