mysql double类型小数点消失

img

img


保存后price字段double类型的小数点2消失了,也没报错

先设置长度,再设置小数点

  • 以下回答由chatgpt基于相关博客总结生成:

    可能出现小数点丢失的原因之一是MySQL默认截断double类型数据的小数部分。这可能会导致数据精度不准确,影响业务逻辑。

    解决方案是修改MySQL的设置,更改double类型数据的小数位数。

    步骤如下:

    1. 确定当前的MySQL版本,是否支持修改double类型的小数位数。

    2. 在 MySQL配置文件中,找到并修改以下参数:

    3. max_allowed_packet: 控制最大的数据包(以字节为单位)。

    4. --max-allowed-packet=512M
    5. innodb_log_file_size:设置每个InnoDB redo日志文件的大小。
    6. --innodb_log_file_size=2GB

    7. 在MySQL中执行以下命令,更改double类型的小数位数:

    8. ALTER TABLE tablename MODIFY columnname DOUBLE(10,2);

    注:此处指定小数点后保留两位,实际应根据业务需求进行调整。

    1. 在MySQL中使用SELECT语句检查修改后的结果。

    如果以上步骤不能解决问题,可能需要进一步排查MySQL设置或数据库表设计的问题。

    参考资料:

    1. https://www.jianshu.com/p/7bc32a234100
    2. https://dev.mysql.com/doc/refman/8.0/en/floating-point-types.html