找回密码
 立即注册
查看: 575|回复: 2

C语言代码实现四舍五入的方法,不用C语言标准库中的库函数

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:394
  • 最近打卡:2025-05-06 07:53:41

45

主题

381

回帖

1587

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1587
发表于 2023-12-11 16:50:21 | 显示全部楼层 |阅读模式
本帖最后由 rengran 于 2023-12-11 18:31 编辑

1、 在C语言中,两个整数相除,如果不能整除,那么余数就会被舍弃。但是有时候为了能达到更高的准确度,需要进行四舍五入,保证误差不会那么大。比如100/99,如果不采用四舍五入,误差是99;而采用了四舍五入的话,误差就是1,那么更好的方式就是选择四舍五入。
2、 采用标准库函数来实现四舍五入,是可以的。其实不采用库函数,用简单的算数表达式就可以实现。
假设被除数A和除数B都是整数,那么四舍五入的结果=(A±K)/B,其中K=B/2,当B不能被2整除时,K等于B/2的整数部分;如果A为负数,就是A-K,A为整数就用A+K。
例如:87作为被除数,6和11分别为除数;
87/6 =14.5,单片机最后的结果是14,将小数部分舍去了。
(87+3)/6 =15,单片机最后的结果是15, 舍去小数部分,实现了四舍五入功能;
87/11 ≈ 7.9090909,单片机最后的结果是7,将小数部分舍去了;
(87+5)/11  ≈ 8.363636 单片机最后的结果是8,舍去小数部分,实现了四舍五入功能;
红颜色的数字表示除数,绿色的数字表示  (除数/2) 以后的整数部分,

处事要代人所想,读书需切己用功
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-05-06 08:38:18

33

主题

2355

回帖

4872

积分

论坛元老

积分
4872
发表于 2023-12-11 17:22:22 | 显示全部楼层
正整数有了,,负数呢
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:394
  • 最近打卡:2025-05-06 07:53:41

45

主题

381

回帖

1587

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1587
发表于 2023-12-11 18:29:28 | 显示全部楼层
cofmilk 发表于 2023-12-11 17:22
正整数有了,,负数呢

负数那得用减法了
处事要代人所想,读书需切己用功
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-6 16:22 , Processed in 0.121373 second(s), 60 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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