QT浮点型输出问题

如下一段输出浮点型的程序:

    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");

组合字符串的一个完全不同的方式是使用QStringsprintf()函数:

str.sprintf("%s %.1f%%", "perfect competition", 100.0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值