找回密码
 立即注册
查看: 773|回复: 3

STC单片机float类型精度以及有效数字问题

[复制链接]

1

主题

1

回帖

19

积分

新手上路

积分
19
发表于 2023-8-25 20:56:13 | 显示全部楼层 |阅读模式
使用STC单片机,发现浮点数值为998571.375f时,也就是有效位数为9位时,使用printf函数发现输出值为998571.400这个值,有效数字只有7位,产生了精度丢失和进位,这个问题有大佬知道嘛?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:328
  • 最近打卡:2025-03-09 19:40:01

9

主题

328

回帖

4501

积分

荣誉版主

积分
4501
发表于 2023-8-26 09:14:27 | 显示全部楼层
按理说不应该,float的998571.400实际上存储的也是998571.375,但是keil的printf函数只提供了7位有效数字(参见 https://developer.arm.com/documentation/ka003338/latest/ )。
如果你需要在一定范围内精确的数值可以考虑用32位整数作定点数
回复 支持 2 反对 0

使用道具 举报 送花

1

主题

1

回帖

19

积分

新手上路

积分
19
发表于 2023-8-29 14:28:51 | 显示全部楼层
kk*** 发表于 2023-8-26 09:14
按理说不应该,float的998571.400实际上存储的也是998571.375,但是keil的printf函数只提供了7位有效数字( ...

非常感谢大佬
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:470
  • 最近打卡:2025-05-04 11:22:32
已绑定手机

20

主题

106

回帖

683

积分

高级会员

积分
683
发表于 2023-10-15 20:54:33 | 显示全部楼层
此问题与STC无关,浮点数是Keil的功能,你应该咨询Keil的客服。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 22:51 , Processed in 0.586661 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表