要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。在C语言中,使用格式化输出函数printf来实现输出。输出格式为%.NF1 %为格式化字符串的引导字符。2 .N表示指定显示N位小数。3 F为类型字符,对于float, F值为f, 对于double,F值为lf。举例:1 要输出float a=1...
还有,scanf("%15.10f",&x);15.10这个是不允许出现的,在数据输入的时候只能指定输入数据的总长度,不能指定小数点后的长度。
x --> (int)(x+0.5)当 x=n+r, 0<=r<1,若 0<=r<0.5, 则r+0.5<1, (int)(x+0.5)=(int)(n+r+0.5)=n 若 0.5<=r<1, 则1<= r+0.5, (int)(x+0.5)=(int)(n+r+0.5)=n+1 Note2:举例来说: 若正数要依舍去法精确到小数点後第二位 x --> (int)(x...
x=(int)(x+0.5);2、举例:若正数要依舍去法精确到小数点後第二位;例如6.2367–>(int)(623.67)/100.0=623/100.0=6.23 doublex;x=(int)(x*100)/100.0;//注意是除以100.0;3、举例:若正数要四舍五入精确到小数点後第二位,即x*100四舍五入再除以100;x=(int)(x*100+0.5...
使用输出格式说明符来指定精确到小数点位数。如:void main(){ float a=345.234678;printf("%.3f\n", a) ;} 其中%.3f里的3就表示输出精确到小数点后3位。所以可参考的形式是printf("%m.nf",p);m.nf,指定输出的数据共占m列,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值...
int的作用是将后面计算结果强制数据类型转换为int, 换句话说舍弃小数部分:i*10=123.4(i*10)+0.5=123.9 如果原小数点后第2位>=5,这个加法会导致进位,在整数部分实现四舍五入(int)((i*10)+0.5)=(int)(123.9)=123 取整实现舍弃后续位(int)((i*10)+0.5)*0.1=12.3 2 已赞过 已踩过< 你对这个回答...
int main(){ int a,b,c,i,n=0,k[30];scanf("%d%d%d",&a,&b,&c);do { printf("Case %d: ",++n);for(i=0; i<=c; i++){ k[i]=a/b;a=a%b*10;} if(a/b>4)k[c]++;for(i=c; i>0&&k[i]>9; k[i]++)k[i--]-=10;for(i=0; i<=c; i++){ if(i...
上述这段代码中,在第5行定义了一个float型的变量num1,在第6行定义了一个double型的变量num2,里面都存储着圆周率,精确到小数点后面的14位。 在第8行和第9行,分别输出了这两个变量里面的值,最终程序运行的效果,如下图所示: 我们可以看到这个程序的运行结果,num1是存在误差的。因为float类型的变量,存储不了太多...
以输出π值为例,给出算法:include <stdio.h> define PI 3.1415926535897932384 void main( ){ char str[81]="PI=%10.00f\n";int n;printf("input n(1-15):");scanf("%d",&n);str[7]='0'+n/10;str[8]='0'+n%10;printf(str,PI);} 这段程序能输出float的全部16为精度。