c语言 求小数的位数
发布网友
发布时间:2022-05-12 07:30
我来回答
共4个回答
热心网友
时间:2024-03-12 16:15
你写这个程序,最好去理解下 float的存储方式了:
float 在存储的时候,占32位,最高位是符号位,第30-23位为指数位,剩余是尾数位占24。
举个例子:
假设:float a=3.21;
print("%f",a);和printf("%10f",a);
输出结果肯定不相同的,因此,你想要得到精准的位数,除非要制定长度了,否则,你只能按剩余24位来计算了,注意,要去掉10进制的位数了,
热心网友
时间:2024-03-12 16:17
2.00076浮点位是几个,2.123000234浮点数是几位?也就是说你的有效位是多少?
另外比较运算使用浮点数这样不合适吧。
热心网友
时间:2024-03-12 16:11
#include<stdio.h>
int main()
{
float i=2.7765;
int num=0;
while(i-(int)i>0)
{
i=i*10;
num++;
}
printf("%d",num);
return 0;
}
只能这样,计算机储存浮点型数据时只储存小数点后6位,想算具体的只能用数组
热心网友
时间:2024-03-12 16:09
#include<stdio.h>
#include<string.h>
int main()
{
int i,x,y;
char s[100];//用字符串存储浮点数
printf("请输入浮点数:");
gets(s);
y=strlen(s);
for(i=0;i<100;i++)
{
if(s[i]=='.')
x=(i+1);
}
y-=x;
printf("%d\n",y);
return 0;
}
看来还是没明白你的意思,呵呵