QT被认为是最简单的C++,比VC简单明了多了,而且可以跨平台。我时不时会用到它,下面说一下我踩过的坑及解决方法:
1.Debug输出乱码,至今未解决,用过各种转码函数,没用。右侧变量栏中文显示不乱码,需要输出的语句写到某变量中即可查看
2.数据库查询后,query.value("abc")这个值是只读,可以读,不能写。要写的话,必须用update。我还遇到了一个错,把双引号写成了单引号,QT并不报错,然而结果肯定是错的
3.select查询以后,直接取query.value("abc")是取不到的,哪怕你确定有且必有一条数据也不行。为啥?要if(query.first)。时间长忘了这些
4.如果百亿金额加上小数,会是很多位,虽然可以用float,double存储,但一运算就出错,产生精度问题。这是金额,1分钱也不能差,更何况这么多位数,它一出入就是几百上千元下去了。解决的方法,是用字符型存储,要运算的直接组成SQL语句让数据库去算,数据库不会有精度问题。toFloat()这种函数,只能用来判断正负,千万不可用来取值。网上还有个办法是转化成整形,如乘上10,100或1000等,然后算完后再除以10,100,1000。听说QT有个类QBigDecimale可以精确计算,没试。另外说boost有个大数运算类,以后试一试。