㈠ 如何用c语言计算小数点后位数(float本身都无法精确)
float以10进制只有7个有效数字,如果你存的数大于7位那么一定会不准确,小于7位的就准确,其实float只有前7位有意义,有时会只有6位有意义。。。 也就是说你只用用7-整数位数就行,如果整数位为0,那么你只需要7+第一个不是0的小数所在位置即可,即此时小树位数是大于7的,但有效数字个数仍然是7。。。。
㈡ 在c语言中如何指定精确到小数点后任意位数
Note1:
正数 x 四舍五入的技巧:
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*100)/100 就好.
例如 3.2794 --> (int)(327.94)/100=327/100=3.27
Note3:
举例来说: 若正数要四舍五入精确到小数点后第二位
x*100 四舍五入再除以100 就好
也就是 (int)(x*100+0.5)/100
㈢ 如何用c语言计算小数点后位数
这个要看小数按什么格式输入。
如果按%s输入,也就是按字符串格式输入,先找到小数点的位置,然后统计下小数点后数字的长度。
具体实现可参考:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(intargc,char*argv[])
{
chara[128];
while(scanf("%s",a)!=EOF)
{
if(strstr(a,".")!=NULL)
printf("%d ",strlen(strstr(a,".")+1));
else
printf("0 ");
}
system("pause");
return0;
}
这是最后一个已经出现错误,所以遇到要精确判断小数点的位数,最好直接按字符串读入,这和图灵机的工作原理暗暗相合。
㈣ C语言怎么精确浮点型变量到小数点后一位,例如0.1+0.1,它就显示0.200000003,我后期还会用这个数作计算
float无法精确表示0.2,可以考虑用整型数据保存2,当成0.2来使用,比如计算0.1+0.1可以计算1+1=2,这个2就是0.2
在计算机程序设计中,浮点数是不能指望精确存储或计算的,一定有误差,可以考虑控制误差的办法解决这个问题。
㈤ c语言题目:输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。例如a=1,b=6,c=4时应输出0.1667
你没有必要那样做的,直接这样就可以了。如。
c=8;
double pp=a/b;
if ( (pp*1000000000%10) > 4)//判断小数点后第9位是否大于4,大于4就要进位
pp+=0.00000001;
printf("结果是%0.8f",pp); //输出结果,自动只输出到小数点后8位。
㈥ 在C语言中,要想将一个数精确到小数点后几位,应该怎样做。
如果是输出的话,可以用:
printf("%.4f",3.1415926);
㈦ c语言如何精确小数点后指定位数
可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果。
要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。
在C语言中,使用格式化输出函数printf来实现输出。
输出格式为
%.NF
1 %为格式化字符串的引导字符。
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);