查看完整版本: [--
不确定小数位数时,从double转到QString的问题。
--]
QTCN开发网
->
Qt基础编程
->
不确定小数位数时,从double转到QString的问题。
[打印本页]
登录
->
注册
->
回复主题
->
发表主题
niushitana
2020-04-02 11:48
不确定小数位数时,从double转到QString的问题。
QT在windows上的编程,数据库是sqlserver2008,变量l
sq_cx类型是
QSqlQuery,执行
lsq_cx
.
exec
("select * from table"
)后,当数据库
表中具体字段类型是decimal时,想把小数转成QString,百度抄了下别人的代码如下:
ls_value
=
QString(
"%1"
).arg(lsq_cx.value(j).toDouble());
ls_value=QString::number(lsq_cx.value(j).toDouble(),
'f'
,
4
);
第一行代码的问题是小数点后面如果有4位,转换后会变成只有3位。
第二行代码的问题是如果小数点后面只有3位,转换后第4位会补0。
我就想要,小数点后面有几位转换后就是几位,不补0,也不减少位数的方法。实在是英文不好,看不太懂QT的帮助,又急
着要解决这个问题,所以特来此求助各位,先在此谢过了。
liulin188
2020-04-02 14:59
反正我记得我曾经写过一个东西,toDouble进行计算后,少了一分钱,换成toFloat没问题,后来不管用toDboule了
20091001753
2020-04-02 17:59
QString::number(double n, char format = 'g', int precision = 6)
如果你不想指明 precision 多少位,可以尝试填 -1
即:
QString::number(lsq_cx.value(j).toDouble(),'f',-1);
maxlogo
2020-04-03 08:51
直接用QString::number就可以了,什么都不用指定, 'g'可以去掉尾随0,但是注意精度问题,默认精度是6位精度(整数部分+小数部分总共是6位精度),整数部分如果超过有效精度会被换成科学计数法,整数部分+小数部分超过有效精度,小数部分会四舍五入。自己把握吧
查看完整版本: [--
不确定小数位数时,从double转到QString的问题。
--] [--
top
--]
Powered by
phpwind
v8.7
Code ©2003-2011
phpwind
Gzip disabled