c++ 两次用到pow函数会产生这么大误差吗?

大哥们,我想把一个任意整数拆分,用到pow两次函数,结果产生误差,不太理解,有哪位帮忙解决一下?

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <math.h>
#define length 10
using namespace std;
string getString(const int a);
unsigned long getInt();
int getLen(int b);
/*
* 分割任意一个整数
*/
vector<int> splitInt(int a){
vector<int> v;
int len = getLen(a);
for(int i = len;i >= 1;i--){
int t = i-1;
int j = pow(10,t);
cout<<j<<endl;
if(i == len){
v.push_back(a/j);
}else{
v.push_back(a/j%10);

}
}
return v;
}
/*
* 判断一个数有多少位
*/
int getLen(int b){
int len = 0;
for(int i = 10;i >=1;i--){//i代表几位数
int j = pow(10,i-1);
if(b/j != 0){
len = i;
break;
}
}
return len;
}
int main(){
int i = 56789;
vector<int> t = splitInt(i);
for(int i = 0;i < t.size();i++){
cout<<t[i]<<",";
}
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值