1、数字运算问题
Java中对double/float类型的数据进行计算时,存在精度问题,如a=5.3,b=5,计算出的a-b不等于0.3,原因是double数据类型在内存中的表示方式并不一定是精确的,经过运算后,得到的结果并不是表示0.3,而是近似于0.3的小数。计算时,使用BigDecimal类的对象来进行运算可保证精度,同时必须注意要使用new BigDecimal(String s)的方式构建对象,因为只有这样创建出来的对象才是精确表示字符串s指定的数值。
2、oracle数据库的分组函数
使用了分组函数group by后,不能出现分组条件之外的字段,sql语句:select 字段1,字段2,..., from... where ... group by ...,字段1,2...中没有聚合函数即没有count/sum/min等函数,必须在group by的字段中包含,如:
select p1,p2,count(p3) from table where p1='XXX' group by p1,p2,如果group by中只有p1,则会提示不是group by表达式,或者提示不是单分组函数;
举例:
select payment_bill_no,pay_time from mems_payment_bill group by pay_time;--ORA-00979: 不是 GROUP BY 表达式
select payment_bill_no,count(*) from mems_payment_bill group by payment_bill_no;--ok
3、IE11浏览器下,JavaScript判断浏览器版本类型
var userAgent = navigator.userAgent;
var isIE11 = userAgent.indexOf("rv:11.0) >-1;
var isEdge = userAgent.indexOf("Edge")>-1;
var isOpera = userAgent.indexOf("Opera")>-1;
//取得IE的版本号:
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var IEVersion = parseFloat(RegExp["$1"]);