gpt4 book ai didi

c++ - 这种精度损失发生在哪里以及如何防止它发生?

转载 作者:太空狗 更新时间:2023-10-29 20:29:47 25 4
gpt4 key购买 nike

我正在用 Qt 编写一个简单的工具,它从两个 GPX (XML) 文件中读取数据并以某种方式组合它们。我使用包含具有 6 位小数位精度的航路点的航迹日志测试了我的工具。当我从 GPX 文件中读取它们时,精度会降低到 4 位小数(正确四舍五入)。例如这个原始标签:

<trkpt lat="61.510656" lon="23.777735">

当我的工具再次写入时变成这样:

<trkpt lat="61.5107" lon="23.7777">

调试输出显示此行发生精度损失:

double lat = in.attributes().value("", "lat").toString().toDouble();

但我不明白为什么。 in 是一个从文本文件句柄读取的 QXmlStreamReader

最佳答案

这可能是在您值写回 XML 时。请在您的问题中发布该代码。

如果我在看到代码之前有一个猜测,您正在使用 QString::number 将 double 转换回字符串。转换中的默认精度为 6,这与您所看到的相符。您可以提高精度以获得所有小数。

关于c++ - 这种精度损失发生在哪里以及如何防止它发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988948/

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