黑马程序员技术交流社区
标题:
关于四舍五入的算法
[打印本页]
作者:
ySssssssss
时间:
2016-3-28 22:04
标题:
关于四舍五入的算法
#include <stdio.h>
int main(){
//声明变量保存用户输入的实数
float num = 0.0f;
printf("请输入一个小数: \n");
scanf("%f",&num);
int num2 = num;
float num3 = num - num2;
int res = num3 >= 0.5;
//判断是否符合四舍五入规则
//%.2f-整数部分大于0.5则整数部分+1
if(res)
{
int num4 = num2 + 1;
printf("四舍五入后的结果为:%d\n",num4);
}
if(res == 0)
{
printf("四舍五入后的结果为:%d\n",num2);
}
return 0;
}
请问算法还能简便一些吗?
作者:
毛小猪
时间:
2016-3-29 22:04
我也是这样想的,判断一个float类型的数减去一个整型的数,结果和0.5比较
作者:
最爱舒儿
时间:
2016-3-30 01:17
这个就挺好 想简单可以使用强行转化
作者:
缘之有缘
时间:
2016-3-30 19:28
不是直接:
printf("四舍五入后的结果为:%.0f\n",num);
就实现四舍五入吗。
作者:
qq6937523
时间:
2016-4-1 09:28
缘之有缘 发表于 2016-3-30 19:28
不是直接:
printf("四舍五入后的结果为:%.0f\n",num);
就实现四舍五入吗。
如果小数点后面只有.5 的话 不会进位的
作者:
x_starry
时间:
2016-4-1 19:31
定义一个int型变量来接收[(需要四舍五入的数字)+0.5]
int jieGuo = num + 0.5;
就OK了
作者:
张立鹏
时间:
2016-4-1 21:43
其实有更简单的算法:
int mian(){
float num = 0.0f;
scant("%f",&num);
int zhengShu = num + 0.5;
printf("%f四舍五入后为 %d",num,zhengShu);
return 0;
}
复制代码
作者:
缘之有缘
时间:
2016-4-1 22:38
学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2