• 6062阅读
  • 1回复

[提问]QT中double输出精度问题 [复制链接]

上一主题 下一主题
离线illusioncn
 

只看楼主 正序阅读 楼主  发表于: 2011-11-03
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    double aa = 1288.00734;
    QVariant temp(1288.00734);
    std::cout<<aa<<temp.todouble();
    return a.exec();
}
输出结果是1288.01  1288.01
尝试了其它数字,发现无论如何,输出的最多只有6个数字。
请教一下大家这是什么原因呢??std::cout<<aa<<temp.tostring();

这个时候结果是正确的:“1288.00734”。
离线wxj120bw

只看该作者 1楼 发表于: 2011-11-04
回 楼主(illusioncn) 的帖子
你调式程序 会知道aa和temp存储的值没变 实际上std::cout会对double进行一个格式化(这个说法不一定对) 你可以设置std::count输出完整的结果
快速回复
限100 字节
 
上一个 下一个