字串處理,費勁。
#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;
}