gpt4 book ai didi

c++ - sscanf 的精度问题

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

我正在使用 sscanf 从文本文件中读取一些值,并使用 %lf 将它们存储为 double。

但值正在变得四舍五入。例如

读取内容:5.655035220-E02存储了什么:0.0565504

我认为它与格式说明符“%lf”有关。

请按原样建议用于读取和存储值的正确格式说明符。

最佳答案

您的意思是您已经编写了这样的代码(感谢您下次提供您的代码,顺便说一句,它确实有助于理解正在发生的事情,而不必依赖模糊的线索):

#include <stdio.h>

int main(){
double v2;
sscanf("5.655035220e-02", "%lf", &v2);
printf("%f\n", v2);
return 0;
}

你得到的结果如下:

0.056550

(给出或取一个小数位。)

你的问题不在sscanf()中的十进制到 double 的转换,这没问题,而是在printf()的 double 到十进制的转换>。变量 v2 包含您扫描的数字的近似值。您根本没有请求 printf() 打印此近似值的许多数字。尝试:

printf("%.10f\n", v2);
0.0565503522

关于c++ - sscanf 的精度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831623/

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