社区
其他技术讨论专区
帖子详情
c – sscanf的精确问题
weixin_38051598
2019-09-12 12:16:05
我正在使用sscanf从文本文件中读取一些值,并使用%lf将它们存储为double. 但价值正在变得圆满.例如 内容如下:5.655035220-E02存储的内容:0.0565504 我认为这与格式说明符“%lf”有关. 请建议正确的格式说明符,以便读取和存储值.
...全文
92
1
打赏
收藏
c – sscanf的精确问题
我正在使用sscanf从文本文件中读取一些值,并使用%lf将它们存储为double. 但价值正在变得圆满.例如 内容如下:5.655035220-E02存储的内容:0.0565504 我认为这与格式说明符“%lf”有关. 请建议正确的格式说明符,以便读取和存储值.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38051760
2019-09-12
打赏
举报
回复
你有2个问题 你的printf()说明符会四舍五入(可能)您的浮点变量无法保留所有所需的精度. 建议的格式说明符:阅读:sscanf(缓冲区,“%le”,& d)存储:printf(“%.* le”,DECIMAL_DIG / *或DBL_DIG 3 * /,d) 问题1 double d; sscanf("5.655035220e-02", "%lf", &d); printf("%.7lf\n", d); // 0.0565504 printf("%.7le\n", d); // 5.6550352e-02 printf("%.9le\n", d); // 5.655035220e-02 如果您使用%e打印出来,它们将是更重要的数字而不是前导零位数的%f.您看到的数字是舍入值.存储的数字不是5.65503522000000008 … e-02 问题2 如果您使用了float类型而不是double,那么您可能会遇到精度损失,因为5.655035220e-02在典型的4字节浮点中是5.65503537 … e-02. 推荐@devnull关于阅读每个计算机科学家应该知道的关于浮点运算的想法.http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
关于sprintf与s
scanf
基本用法
sprinf与s
scanf
基本使用及精度控制与s
scanf
正则表达式等内容。建议将文中的例子上机运行下。
C语言字符串转数字难题破解(s
scanf
高效应用指南)
轻松掌握C语言s
scanf
字符串提取数字技巧,解决格式化数据解析难题。适用于日志处理、输入校验等场景,精准高效。详解用法与注意事项,提升代码健壮性,值得收藏。
1054 求平均值 && s
scanf
和sprintf的详细用法
1054 求平均值 && s
scanf
和sprintf的详细用法
C语言重难点知识梳理与常见题目/项目游戏解析
1.使用JetBrains_Clion编译环境搭建入门指南 2.VisualStudio运行后一闪而过和
scanf
函数的4996报错
问题
1.一闪而过 VS右边的解决方案,找到对应的项目后:属性
–
>连接器
–
>系统
–
>子系统:控制台 (/SUBSYSTEM:CONSOLE) 2.
scanf
的error C4996 报错如图: 网上有很多手动修改属性配置的,试过后大多不起作用。后来修改了newc++file.cpp后会自动取消掉
scanf
的报错
问题
。
scanf
原本书C语言标准输入函数,
C 语言常见
问题
集
C 语言常见
问题
集原著:SteveSummit翻译:朱群英,孙云修订版0.9.4,2005年6月23日版权所有c. 2005 目录目录 i 前言 xvii 1 声明和初始化 1 1.1 我如何决定使用那种整数类型?................... 11.264位机上的64位类型是什么样的?................ 11.3 怎样定义和声明全局变量和函数最好?.........
其他技术讨论专区
476
社区成员
790,963
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章