细心!SQL语句进行运算时使用字符串时缺失精度的细节!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了细心!SQL语句进行运算时使用字符串时缺失精度的细节!相关的知识,希望对你有一定的参考价值。

  昨天没有更新,特此来说明下原因,昨天回到家时已经甚晚,正逢公司这几天项目比较紧张(bug多,赶需求,看着bug单齐刷刷的转过来,心都颤抖了一下),没有及时准备素材,今天又加了一天班(现在还在公司,偷个空隙赶紧发博,哈哈哈),所以昨晚没有更博。

  今天在改bug的时候发现了如图的小问题,来分享一下,主要还是要细心。

  我们有一个页面,需要输入数字传入后台,然后进行相关的运算,再通过运算后的数进行查询,我们页面输入值传入后台的是String类型的,进行运算后得出一个缺失精度的值,而我们用来查询时把这个数转化成Integer类型,所以导致了报错,以下是运算时的展示图:

技术分享

  price为Decimal类型,100是页面输入传进去的值,第三列是和同事定位问题后做了换算得出的结果,再进行查询就不会报错了。

  大家以后再涉及页面输入值后台需要进行计算时,特别是在SQL语句中,要记得检查传入的值类型,或者有个好习惯加一个"jdbcType=?"来进行监测,以防出错时能快速定位,加快开发效率(原来的开发工程师没写,我和我同事定位了半个小时才找到,气煞我也,这种运算,只有在price为有小数的时候才报错,整数时没错),好了,今天就到这了,我先下班了,今天bug改的差不多了,心情还是happy哒。

  我的心愿是,改变世界!

以上是关于细心!SQL语句进行运算时使用字符串时缺失精度的细节!的主要内容,如果未能解决你的问题,请参考以下文章

SQL服务器在执行这条语句时会先进行运算然后执行

为啥这个merge语句会报缺失ON关键字

ORA-00907: 缺失右括号问题整理解决

2019-06-12 关于微服务大数字精度丢失解决方案

js 怎样精确计算除法,没有精度缺失?

对缺失数据进行内部连接时的 SQL 删除