就是模拟过程,也要知道一些处理字符串的用法
s.substr(i,len),截取字符串s的下标i开始len个字符;只给一个说明默认为下标,取及该下标和剩余的所有
stoi(s),把string转数字,但string要有效,比如@%56&不会输出56,而+09会输出9,-0670输出-670
abs(n)取正数
#include<iostream>
#include<cstring>
#include<list>
using namespace std;
int main()
{
string s;cin>>s;
int pos=0;
while(s[pos]!='E')//定位E
{
pos++;
}
int l=pos-3;//E前面数中小数点后面的数
string t="";
t=s.substr(1,1)+s.substr(3,pos-3);//E前面的所有数字
int n=stoi(s.substr(pos+1));
if(s[0]=='-')
{
cout<<'-';
}
if(n<0)
{
cout<<"0.";
n=abs(n);
n--;
while(n--)
{
cout<<0;
}
cout<<t;
}
else{
if(n<(t.length()-1))
{
cout<<t.substr(0,n+1)<<'.'<<t.substr(n+1);
}
else{
cout<<t;
int i=n-t.length()+1;
while(i--)
{
cout<<0;
}
}
}
return 0;
}