关于c语言的题,要求对小数点后第三位进行四舍五入。
答案:4 悬赏:10 手机版
解决时间 2021-02-14 23:30
- 提问者网友:寂寞撕碎了回忆
- 2021-02-14 13:34
关于c语言的题,要求对小数点后第三位进行四舍五入。
最佳答案
- 五星知识达人网友:猎心人
- 2021-02-14 14:36
C语言是没有直接的对小数点后第三位四舍五入的函数的,但是可以间接实现。
具体的思路如下:
把该数字乘以100,这样小数点之后第三位就是第一位了;
C语言取整的时候是社区小数,而不是四舍五入,此时只要把数字加上0.5后取整就可以实现四舍五入的效果,而且不用调用任何四舍五入的函数。
实现代码与注释如下:
void main()
{
double num=3.14159; //这里用PI的值距离
num= (int)(num*100+0.5); //乘以100+0.5后取整
printf("%.3lf",num); //输出结果
}
具体的思路如下:
把该数字乘以100,这样小数点之后第三位就是第一位了;
C语言取整的时候是社区小数,而不是四舍五入,此时只要把数字加上0.5后取整就可以实现四舍五入的效果,而且不用调用任何四舍五入的函数。
实现代码与注释如下:
void main()
{
double num=3.14159; //这里用PI的值距离
num= (int)(num*100+0.5); //乘以100+0.5后取整
printf("%.3lf",num); //输出结果
}
全部回答
- 1楼网友:未来江山和你
- 2021-02-14 18:42
不合理。首先从数据类型上看:
float a=h;//这里的a定义的是单精度
int i,j;
a*=1000; //这里a却成了整型类型。前后不一致。再说。没有必须用a=h这个赋值语句。
//直接操作变量h,然后再赋给a。定义a为长整型,是合理的。追问a*=1000,这时a还是浮点啊。我后面的操作是对赋予j之后的。a一直都是浮点,怎么变的?
float a=h;//这里的a定义的是单精度
int i,j;
a*=1000; //这里a却成了整型类型。前后不一致。再说。没有必须用a=h这个赋值语句。
//直接操作变量h,然后再赋给a。定义a为长整型,是合理的。追问a*=1000,这时a还是浮点啊。我后面的操作是对赋予j之后的。a一直都是浮点,怎么变的?
- 2楼网友:猎心人
- 2021-02-14 17:03
一般来说,C语言里要求输入保留两位小数点,这么输出就行了
float a=1.225332;
printf("%.2f",a);
float a=1.225332;
printf("%.2f",a);
- 3楼网友:空山清雨
- 2021-02-14 16:01
你的不对吧?!对小数点后第三位进行四舍五入就是要求要保留两位小数··
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯