zoukankan      html  css  js  c++  java
  • 关于mysql的数值相减,计算数值不准确的总结。

    今天在做一个需求,在将数据库的数据做减法然后比对的时候发现,12.13-12=0.13 然后和最终的值0.13进行对比的时候居然不相等。这不是坑人吗

    然后我们查看了表当中的这些数值存储的数据类型。发现所有的数据存储都是按照varchar的形式进行存储,导致mysql数据库在计算数据的减法的时候出现了

    偏差导致的。这就是mysql的不严谨的地方,对于数据的数据类型没有严格的限制。

    最终的解决方式:将数据类型进行转化,然后进行计算:

    类似下面这种将数据的数据类型进行强制数据类型转化,然后进行计算,这样就能保证数据的精度不会出现问题,计算的结果也不会出现问题。
    cast(b.balance as decimal(11,2))

    至此问题得到解决。

  • 相关阅读:
    SSM框架整合步骤
    Spring-data-jpa
    allure定制报告
    pytest常用选项
    staticmethod&classmethod&property
    __slot__
    python的参数传递
    闭包和装饰器
    内置高阶函数
    str
  • 原文地址:https://www.cnblogs.com/gxgd/p/11993844.html
Copyright © 2011-2022 走看看