【题意】
将科学表示法的浮点数表示为普通形式
【思路】
注意字符串的处理即可
【注意点】
位数不够要补零
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const *argv[])
{
string rawNum,num;
int e = 0,sign[2];
cin >> rawNum;
sign[0] = (rawNum[0]=='+')?1:-1;
int index = 1;
while(rawNum[index]!='E'){
index++;
}
num.assign(rawNum,1,index-1);
sign[1] = (rawNum[++index]=='+')?1:-1;
index++;
for(; index<rawNum.length(); index++){
e = e*10+rawNum[index]-'0';
}
if(sign[0]<0){
cout << '-';
}
num.erase(num.begin()+1);
if(sign[1]==1){
//末尾要补零
if(e>=num.length()-1){
string zeros(e-num.length()+1,'0');
num.append(zeros);
cout << num;
}
else{
string before,after;
before.assign(num.begin(), num.begin()+e+1);
after.assign(num.begin()+e+1,num.end());
cout << before << '.' << after;
}
}
else{
string zeros(e-1,'0');
zeros.append(num);
cout << "0." << zeros;
}
system("pause");
return 0;
}