www.rtmj.net > C语言输出指定位的小数

C语言输出指定位的小数

1、C语言中,输出double类型(双精度实型)以及float类型(单精度实型)时,默认输出6位小数.比如这样的代码:double a = 1; printf("%lf\n", a); 输出会是1.0000002、但是有时六位会显得很长,没必要.比如计算平均分,一到两位小数就足够了.可是有时六位又不够,需要更多位小数,比如计算高精度平方根.这时可以用printf的格式控制.如果要输出n位小数,那么可以用%.nlf的格式.其中n为数字.如要输出10位小数,那么 printf("%.10lf\n", a); 即可.

首先要加#include,定义非整形变量double或float,在最后用print("%.几位小数f",你要输出的变量);

默认6位,不过可以通过程序控制为想要的位数;如: printf("%12.15lf\n",x);表示输出占12格的小数位数为15为的x的值; printf("%.8lf\n",x);表示输出小数位数为8为的x的值.

可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果.要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double).在C语言中,使用格式化输出函数printf来实现输出.输出格式为%.NF1 %为格式化字符串的引导字符.2 .N表示指定显示N位小数.3 F为类型字符,对于float, F值为f, 对于double,F值为lf.举例:1 要输出float a=1.23234; 保留3位小数的写法为:printf("%.3f",a);2 输出double b=123.345232; 保留4为小数,写法为:printf("%.4lf",b);

#include<stdio.h>#include<stdlib.h> void main(){ int i=0; int m=10; int n=3; int s=0; s=m/n; printf("%d",s); printf("."); for(i=0;i<100;i++) { s=m/n; m=m%n*10; printf("%d",s); } printf("\n"); }

用printf函数%g默认的是输出6位小数,你如果想输出13位小数则写成%.13g就可以了

格式化输出.

#includeintweishu(longn,inta[]){inti=0; while(n) {a[i++]=n%10;n/=10; } returni;}voidmain(void){ longn; intk,i,j,t,a[20]; scanf("%ld",&n); printf("原数:%ld\n",n); k=weishu(n,a); printf("位数:%d\n",k); for(i=0;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("从小到大:");for(i=0;i=0;i--) printf("%d",a[i]);printf("\n");getch();}

先把要控制的数字先乘,再取整,再除.比如:把123.4567保留两位1:先把123.4567剩100等于12345.672:在数字前面加个(int)(12345.67)取整3:取整后数字变成12345 4:最后再把这个数除以100等于123.45

一.%nf 即输出的数字占n位 当原数字位数大于n时原样输出,原数字位数小于n时输出数字左端补上空格,比如原数字为a=1.23456;n为4时输出为1.23456,n为9时输出为 (空格空格1.23456) 二.%n.mf 即输出总共占n位其中有m位小数 如a=1.23456 用%4.2f输出为1.23如果用%5,1f输出为123.4即长度为5小数为1!这里也有当原数字长度小于n时左端补空格这个规则!还有就是当n前面有个负号时即%-nf或%-n.mf时就右端补空格!

友情链接:clwn.net | mdsk.net | qmbl.net | 5615.net | nmmz.net | 网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com