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

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

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

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

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

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

    至此问题得到解决。

  • 相关阅读:
    十天冲刺4
    单词统计
    十天冲刺3
    学习进度第十周
    十天冲刺2
    十天冲刺1
    梦断代码阅读笔记03
    学习进度第九周
    [强网杯 2019]Upload
    [2020 新春红包题]1
  • 原文地址:https://www.cnblogs.com/gxgd/p/11993844.html
Copyright © 2011-2022 走看看