给出一个简单例子,给出a = 3.8766,如何获得a的小数位?
正确的结果应该是4
给出思路:
1,先分离出小数位
2,每次循环给小数位乘上10,如果一个数a是整数,那么就会满足
a - (int)a ==0;通过这种方式我们就能判断乘上10之后该数是不是整数了,从而获得小数位数
代码:
#include <iostream>
using namespace std;
int main(){
float a = 3.8766;
char s[10];
a = a -(int)a;
for(int i=0;i<10;i++){
a *=10;
if(a-(int)a==0){
cout<<i+1<<endl; //i+1就是小数位数
break;
}
}
}
封装成函数
int xiaoshudian(float num){
num = num-(int)num;
for(int i=0;i<10;i++){
num *=10;
if(num-(int)num==0){
return i+1;
}
}
}
函数是可以直接用的,如果大家觉得这篇文章有用,请点个赞,谢谢大家了~~