比较简单实用的一个函数,通过判断小数点的位置来区分整数位与分数位。
float chars2float(char str[])
{
float number0=0,number1=0;
int flag=0;
for(int i=0;i<10;i++)
{
if(str[i]=='.')
flag=1;
else if(str[i]>='0'&&str[i]<='9')
{
if(flag==0)
{
number0=10*number0+str[i]-48;
//cout<<number0<<endl;
}
else
{
number1=number1+pow(0.1,flag)*(str[i]-48);
// cout<<number1<<endl;
flag++;
}
}
else break;
}
return number0+number1;
}
//利用读写文件的操作,角度很偏,但最后会有一些0尾大不掉
//还可以将浮点类型扩大10倍,然后强制类型转换,整型与浮点型相减直至约等于0,就可以判断有多少小数
char here[100];//利用全局数组来保存
void float2chars(float number)
{
FILE *fp;
fp=fopen("0.dat","w");
fprintf(fp,"%f",number);
fclose(fp);
fp=fopen("0.dat","r");
for(int m=0;m<100;m++)
{
fscanf(fp,"%c",&(here[m]));
cout<<here[m];
if(here[m]=='\0')
break;
}
fclose(fp);
}
————————————————————————————————————————
看到了他人的写法,贴在这里供大家参考https://blog.csdn.net/jk050802/article/details/8628764