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

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

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

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

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

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

  我的心愿是,改变世界!

时间: 2024-10-24 01:51:16

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

程序中使用事务来管理sql语句的执行,执行失败时,可以达到回滚的要求。

1.设置使用事务的SQL执行语句 1 /// <summary> 2 /// 使用有事务的SQL语句 3 /// </summary> 4 /// <param name="sql"></param> 5 /// <param name="conn"></param> 6 /// <param name="tran"></param> 7 /// &l

JDBC执行SQL语句以及Date对象和字符串之间的相互转换(关键是那张标准表)

以前看见被人这么写,你觉得可以写成yyYY这样吗,可以mm这样吗,可以mM这样吗,不要有这种想法 都是大神们都写好了,只需要参考手册,然后调用API就行了 原文地址:https://www.cnblogs.com/cs-lcy/p/10341753.html

C#使用带like的sql语句时防sql注入的方法

本文实例叙述了在拼接sql语句的时候,如果遇到Like的情况该怎么办. 一般采用带like的SQL语句进行简单的拼接字符串时,需要开率遇到sql注入的情况.这确实是个需要注意的问题. 这里结合一些查阅的资料做了初步的整理. 如这样一个sql语句: select * from game where gamename like '%张三%' 用c#表示的话: string keywords = "张三"; StringBuilder strSql=new StringBuilder();

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗?

sql语句,能够截取指定字符串后面的一个字符串吗? 如下图: dasf.sdf dergre.adsf.lfs ljjdf.ljfjl 想要得到第一个.后面的字符串内容 sdf adsf.lfs ljfjl SQL语句写法如下,str为字段名称: select id, substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test; 如果中间间隔为-,则sql语句为 select id, substring(st

实用SQL语句

一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建

sql语句大全

sql语句大全1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack4.说明:创建新表create

经典SQL语句大全(转)

SQL语句参考,包含Access.MySQL 以及 SQL Server 基础 创建数据库 CREATE DATABASE database-name 删除数据库 drop database dbname 备份sql server 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' 开始 备份 BACKUP DATABASE pubs TO test

经典SQL语句

经典SQL语句大全(绝对的经典) 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBa

实用SQL语句大全

一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建