QT浮点型输出问题
2016-06-18 23:06
911 查看
如下一段输出浮点型的程序:
输出结果为:
"569411"569411569411.194000569411.194000
可以看到,前两种输出方式没了小数部分。按照c语言的格式控制的方式输出是正常的。猜测是qDebug()函数的默认设置的问题。
第二种使用了QString::number()函数,查看该函数的定义,输出浮点型的函数如下:
double aa;
aa = (double)569411194*0.001;
qDebug()<<QString::number(aa);
qDebug()<< aa;
qDebug("%f",aa);
printf("%f",aa);
输出结果为:
"569411"569411569411.194000569411.194000
可以看到,前两种输出方式没了小数部分。按照c语言的格式控制的方式输出是正常的。猜测是qDebug()函数的默认设置的问题。
第二种使用了QString::number()函数,查看该函数的定义,输出浮点型的函数如下:
static QString number(double, char f='g', int prec=6);
其默认只输出6位,提高输出的位数即可。
在往文件里写浮点数时也是如此。
不论是什么语言,在处理浮点数时都要仔细处理。
在将浮点数转换成字符串时,QString::number()是一种方法,也可以按照表中c++的格式来完成。
QString str = "User: ";
str += userName + "\n";还有一个QString::append()函数与+=操作符有这一样的功能:str = "User: "; str.append(userName); str.append("\n");组合字符串的一个完全不同的方式是使用QString的sprintf()函数:str.sprintf("%s %.1f%%", "perfect competition", 100.0);
相关文章推荐
- MQTT
- 解决Qt5和VS2015中文乱码的问题
- Linux下QT及OpenCV搭建,以及交叉编译OpenCV
- QT调用dll
- Qt圆角功能和状态组合按钮,可以显示颜色或者图片
- qt对话框
- QT线程池实验研究与分析(QThread与和QThreadPool + QRunnable使用上的区别)
- 嵌入式QT SQL中文乱码问题解决
- Qt自定义窗口部件
- Qt 学习之路 :MainWindow 简介
- qt数据库多线程问题的解决(QSqlDatabase只能在创建它的线程中使用)
- qt5集成libcurl实现tftp和ftp的方法一:搭建环境
- Qt:使用Qt creator (32bit)编译Qt creator(64bit)
- qt下的跨目录多工程编译
- 《Qt》part 2 设置软件左上角图标
- Qt Creator error: LNK1123: failure during conversion to COFF: file invalid or corrupt
- QTabWidget标签实现双击关闭的方法(推荐)
- 使用PyQt4写界面后台程序方法总结
- VS2013+QT+OPENCV配置心得
- 实现Qt日志功能并输出到文件(qDebug\qWarning\ qCritical\qFatal)