gpt4 book ai didi

qt - QString::toDouble() 给我精度错误的 double

转载 作者:行者123 更新时间:2023-12-02 07:27:46 31 4
gpt4 key购买 nike

我有一个包含“09338.712001”的 QString myNumber。当我这样做时:

myNumber.toDouble();,它返回 9338.71,但我希望 double 为原始值,即 09338.712001。有谁知道如何让 toDouble 返回的 double 具有与 QString 相同的精度?谢谢。

最佳答案

您的问题可能在于如何输出这些值。

 QString s("9338.712001");
bool ok = false;

double a = 9338.712001;
double b = s.toDouble(&ok);
double c = 1/3.0;

qDebug() << "a: " << a;
qdebug() << "b: " << b;

qDebug() << "a: " << QString("%1").arg(a, 0, 'g', 13)
qDebug() << "b: " << QString("%1").arg(b, 0, 'e', 13);

qDebug() << "c: " << QString("%1").arg(c, 0, 'g', 30);

结果:

 a:  9338.71  
b: 9338.71
a: "9338.712001"
b: "9.3387120010000e+03"
c: "0.333333333333333314829616256247"

但无论如何,也许现在是阅读此文的好时机:What Every Computer Scientist Should Know About Floating-Point Arithmetic

关于qt - QString::toDouble() 给我精度错误的 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299996/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com