您的位置:首页 > 编程语言 > C语言/C++

【C/C++】:如何获得一个float数的小数位数?

2016-05-12 21:59 405 查看
给出一个简单例子,给出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;
}
}
}


函数是可以直接用的,如果大家觉得这篇文章有用,请点个赞,谢谢大家了~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: