C语言如何对个位数四舍五入
来源:学生作业帮助网 编辑:作业帮 时间:2024/03/28 17:14:11
小数最后一位=小数*1000%10If小数最后一位
这个问题还是蛮简单的:#include <stdio.h>#define N 100int main(){ &nb
#include#includemain(){doublea=1.25;intn=1;a=(double)((int)(a*pow(10,n)+0.5))/pow(10,n);printf("%.1f
floatx;.int(x+0.5);
可以用ios里面一个控制,可以百度下.
没见过,不过你可以自己用小技巧:比如要保留2位小数的floata第三位四舍五入则可以这样a=(int)(a*100+0.5)/100
好像没有四舍五入这个说法吧,只有全舍不入,即浮点型转整型时直接去掉小数位,保留整数位.例如:b=a+c+0.5原理:假如a+c=10.49999999那么a+c+0.5=10.99999999,转为i
可以写个函数intsheru(doublei){doublea=i-(int)i;//求此浮点数的小数部分if(areturnint(i);//如果小数部分小于0.5.则返回整数部分.double强制
#include#includeintis_p(intx){inti;if(x再问:三个不同的数字(不全为0),他们所有可能的不同的三位数之和是2886,其中最大的三位数与最小的三位数之差为495,求
声明:doublea;输入a后:a=(double)(((int)((a+0.005)*100.00))/100.00);
很简单,假如你有一个float型变量a,其值为1.23456,而你只想保留三位小数,也就是希望得到1.235,只需要令:a=(int)(1000.0*a+0.5)/1000.0即可.如果要保留四位小数
%.nf,其中n是字面常量,功能是输到小数点后面的第n位,第n+1位“四舍五入”.下面是在VC++6.0环境下的测试结果./*0.2345620.2350.23460.23456Pressanykey
再问:我想知道我为什么会出错再答:对比我的程序还不知道么?你需要使用%.2f或者%g输出,这是输出格式的问题,不是你计算的问题。
#includeintmain(){doublea;scanf("%lf",&a);printf("%.1lf\n",a);return0;}再问:printf("%.1lf\n",a);这句是什么意
=round(XXXXX,-1)XXXX为你的原公式
((int)(2.556*100))/100.0
scanf函数你用错了scnaf("%lf",&j);你换成这个试试看
doublea,b,c;scanf("%lf",&a);scanf("%lf",&b);scanf("%lf",&c);printf("%.1lf",(a+b+c)/3+0.05);
以下仅为个人意见,不保证正确我把楼主给的几种情况都反汇编了之后发现,b=a*100+0.5;b=(int)(b);b=b/100;或b=b/100.0两种结果一样分开写时.80483fb:8b45e8
scanf("%d",&a);改为:scanf("%lf",&a);printf("结果是:%2f\n",a);改为:printf("结果是:%.2f\n",a);%2f是按2位输出,%.2f是按小数