1024 科学计数法
字符串处理,费劲。
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin>>s;
//找到E的位置
int index = s.find('E');
//分割开
string s1 = s.substr(1,index-1);//数据部分
string s2 = s.substr(index+1);//指数部分
int zs = stoi(s2);
if(s[0]=='-') {
cout << s[0];
}
if(zs < 0) { //指数是负数
cout << "0.";
for(int i=0; i<-zs-1; i++) {
cout << "0";
}
for(int i=0; i<s1.size(); i++) {
if(s1[i]!='.') {
cout << s1[i];
}
}
} else { //指数是正数
string se = s.substr(3,index-3);//截取字符串
int len = se.size();//找到小数部分的长度
if(len>zs) { //指数小于小数位数
for(int i=0; i<s1.size(); i++) {
if(s1[i]=='.') {
continue;
}
cout << s1[i];
if(i == 1 + zs) {
cout << ".";
}
}
} else if(len==zs) {
for(int i=0; i<s1.size(); i++) {
if(s1[i]!='.') {
cout << s1[i];
}
}
} else {
for(int i=0; i<s1.size(); i++) {
if(s1[i]!='.') {
cout << s1[i];
}
}
//末尾添加0
for(int i=0; i<zs-len; i++) {
cout << "0";
}
}
}
return 0;
}