我的代码只能保证小于19位 才能成功转换
#include <iostream>
using namespace std;
long long int tonum(char ch[])
{
long long int i, clength, num=0;
for (i = 0; ch[i] != '\0'; i++)
{
}
clength = i;
cout<<clength<<endl;
for (i = 0; i < clength; i++)
{
num = num * 10 + (ch[i] - '0');
}
return num;
}
int main()
{
char ch[100];
cin >> ch;
long long int num;
num = tonum(ch);
cout << num;
}
超过19位,long long也扛不住啊,改成double类型吧,不然就要搞大整数处理了
long long最大值只有9.2*10的19次方
数据溢出
你可以定义long long数组,自己计算保存对应得数字