给出一个简单例子,给出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; } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
封装成函数
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; } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
函数是可以直接用的,如果大家觉得这篇文章有用,请点个赞,谢谢大家了~~