分析:见代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int i=0;
while (s[i]!='E'){ //找到字符E的索引
i++;
}
string t=s.substr(1,i-1); //截取首位正负号和‘E’之间的字符串
int n=stoi(s.substr(i+1)); //‘E’字符后的字符串转为数字
if (s[0]=='-')
cout<<"-";
if (n<0){
cout<<"0.";
for(int j=0;j<abs(n)-1;j++)
cout<<"0";
for(int j=0;j<t.length();j++){
if (t[j]!='.')
cout<<t[j];
}
}
else{
cout<<t[0];
int cnt,j;
for(j=2,cnt=0;j<t.length()&&cnt<n;j++,cnt++)
cout<<t[j];
if (j==t.length()){
for(int k=0;k<n-cnt;k++)
cout<<"0";
}
else{
cout<<".";
for(int k=j;k<t.length();k++)
cout<<t[k];
}
}
return 0;
}
来源:https://blog.csdn.net/qq_43768560/article/details/99078843