LorryLu0416 2021-09-30 02:05 采纳率: 70%
浏览 96

急!!mysql数据保存问题,字符串1.9保存到数据库为1.89999999999

从excel中导入指定数据到mysql数据库,字段是字符串类型,正常set到对象,打断点看对象值还是1.9,执行保存或更新语句后1.9变为1.8999999999999,数据库中不止这一个字段一个值,还有很多值入2.1变为2.09999999999,7.8变为7.7999999999999999,这个是什么原因导致的呢?

        //创建
        sysFoodService.saveBatch(creates);
        //更新
        updates.stream().forEach(x -> {
            LambdaUpdateWrapper<SysFood> updateWrapper = new LambdaUpdateWrapper<>();
            updateWrapper.eq(SysFood::getFoodCode, x.getFoodCode());
            sysFoodService.update(x, updateWrapper);
        });

updates为更新list,打断点看里面的对象值还是1.9,保存到数据库变成1.89999999999,很奇怪,不知道什么原因,求解

  • 写回答

5条回答 默认 最新

  • 普通网友 2021-09-30 07:59
    关注

    这是由于代码中的类型和数据库中的类型不一样导致,

    如果类型一样,你设置下数据库中的小数点位数

    评论

报告相同问题?

问题事件

  • 创建了问题 9月30日