C语言如何判断一个小数的小数点后有几位?

如题所述

除非是从输入的时候就存成字符串, 然后判断小数点后的位数。
一旦存成浮点型变量,不管是double还是float都是近似值,
这时就无法准确判断有几位了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-17
这是C语言中的“右移运算符”。一般情况下,他是按位操作。
特点:1.双目运算符,就像+、-、*、/一样,格式为(数1)>>(数2)
2.数1是被操作数,如被减数、被除数等;数2是右移位数。
3.优先级低,结合性:从左向右运算
如:8>>1=?表示将被移数向右移动1位

如何操作?
1.化十进制数为(注意了)对应的二进制数,对应指格式对应
2.通通右移,不足补0
3.化为十进制数
举例:short int a=8;a=a>>1;

1.a=0 000 1000
2.右移一位后:a= 0 000 100
3.补0:a=0 000 0100
4.化为十进制数:a=4

举例:int a=8;a=a>>1;
1.a=0 000 0000 0000 1000
2.右移一位后:a= 0 000 0000 0000 100
3.补0:a=0 000 0000 0000 0100
4.化为十进制数:a=4本回答被网友采纳
第2个回答  2018-06-26
如果按%s输入,也就是按字符串格式输入,先找到小数点的位置,然后统计下小数点后数字的长度。可以一试。本回答被网友采纳

C语言如何判断一个小数的小数点后有几位?
除非是从输入的时候就存成字符串, 然后判断小数点后的位数。一旦存成浮点型变量,不管是double还是float都是近似值,这时就无法准确判断有几位了。

C语言如何判断一个小数的小数点后有几位
利用整数的截断效果,将数据小数部分单取出来,乘以10后取整,与原数比较,若不等,则判断大于小数点后1位,依此计算直到相等为止。在取整时进行小数点后1位四舍五入可部分防止二进制浮点数与真实数据间的舍入误差问题。

如何用c语言计算小数点后位数(float本身都无法精确)
1、先把浮点数变成字符串,再通过小数点确定小点后面的位数。2、例程:include <stdio.h>#include <string.h>void main() { char * ptr; char strFloat[20]; float number=100.25432; sprintf(strFloat, "%f", number); ptr = strstr(strFloat, "."); if (ptr != ...

用C语言怎样判断一个纯小数有几位,并在数组中输出
{ int count;if( n>0 && n<1) \/\/n是纯小数 while(f){ f-=int(f); \/\/取小数部分 f*=10 ; \/\/右移小数点1位 count++; \/\/记次 } return(count);}int main(){ float num; scanf("%f",&num); printf("小数%f共%d位",num,len_decimal(num));} ...

c语言中100小数点后面有几位
printf("%7.3f",100\/3.0);表示结果占七位,小数部分占3位,这样就可以了,并且小数点后第三位是四舍五入的结果。例如:C语言中浮点数输出精确到两位小数的语句如下:double a=2.0;printf ("%.2f", a);\/\/其中.2指明两位小数 说明:如%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, ...

c语言小数点后保留几位
用定点格式。float 型 %.2f 就是小数2位, %.1f 就是小数1位。double 型 用 %.2f 就是小数2位, %.1f 就是小数1位。double 型 用 %.2lf 就是小数2位, %.1lf 就是小数1位。

用C语言求一个数的小数点后第几位数是多少,程序尽量时间复杂度小点_百 ...
初学C,正好看到此题,呵呵,就用最原始的方法给写一下吧#include"stdio.h"include"math.h"main(){double n;int m,i;printf("请输入一个数及要求的小数点后第几位(空格键隔开):\\n");scanf("%lf%d",&n,&i);m=n;\/\/转换为整型 n-=m;n*=pow(10,i);m=n;\/\/转换为整型 printf(...

c语言如何判断一个数有多少位小数?
当你命令一个变量,并且对该变量赋值.然后向内存条请求分配内存.C语言默认他是float类型的数据.就是单精度浮点数(实数).然后你输出的数据就是默认小数点后4位..还有个双精度浮点数是double..小数点后8位..希望我的回答能够让你满意..

如何用c语言计算小数点后位数
a,".")!=NULL) printf("%d\\n",strlen(strstr(a,".")+1)); else printf("0\\n"); } system("pause"); return 0; } 这是最后一个已经出现错误,所以遇到要精确判断小数点的位数,最好直接按字符串读入,这和图灵机的工作原理暗暗相合。

编程里怎样控制小数点后几位
上面的输出格式说明符%2.3f 中各部分意思如下:2—— 表示整数部分以固定2位宽度输出。如果数据的位数小于2,则左端补以空格,若大于2,则按实际位数输出。.3——(3的前面有个小数点)表示输出精确到小数点后3位。如果实际数字不足3位,则在末尾补0,若大于3位,则按四舍五入取前三位。

相似回答