首页 热点资讯 义务教育 高等教育 出国留学 考研考公

C语言四舍五入的问题

发布网友 发布时间:2022-04-22 14:12

我来回答

5个回答

热心网友 时间:2023-10-17 15:18

这样,你把这个小数,乘以10的8次方,然后对结果取整(也就是强制转化为int型),然后对这个取整后的int型,再除以10的8次方,就搞定了.

如果你想四舍五入,比方说,想要3.14159,四舍五入取小数点后3位,
你可以将3.14159*1000,得到3141.59,然后再加上0.5,得到3142.09,然后再取整(强制转化为INT型),得到3142,然后再除以1000,就得到你想要的小数点后3位的四舍五入了,就是3.142.
如果不想要四舍五入,直接截取,就不要加上0.5

热心网友 时间:2023-10-17 15:19

我没看清。
乘10的8个零,然后转换为int型。然后除以10的8个零要小数点,就是(int)(p*100000000)/100000000.0就可以不四舍五入了这个比较笨的方法

热心网友 时间:2023-10-17 15:19

#include "stdio.h" /* 输入一个double型数据 ,保留两位小数,虽然程序有点啰嗦,但还是行的*/
main()
{
double x,a;
printf("请输入一个double型的小数");
scanf("%lf",&x);
x=x*100;
a=x;
(int) (a);
x=x+0.5;
(int) (x);
if(x=a)
{ a=a/100;
printf("%.2lf",a);}
else
{x=x/100;
printf("%.2lf\n",x);}
}

热心网友 时间:2023-10-17 15:20

只是取小数点后8位…并不四舍五入。

热心网友 时间:2023-10-17 15:21

C语言中一般不四舍五入,而是只考虑
整数部分
,如
int
i,j;
i=7/5;(即1.4)
j=9/6;(即1.5)
printf("%d
%d",i,j);
输出均为1

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com