QT的那些坑及解决方法

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有个大数运算类,以后试一试。
 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值