#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
using namespace std;
int main(int argc, char *argv[])
{
string str;
cin>>str;
bool isPositiveNumber=true;
if(str[0]=='+')
{
isPositiveNumber = true;
}
else
{
isPositiveNumber = false;
}
str.erase(0,1);//去正负号。去小数点 去E后 E后+向后加数,加小数点, -向前加0 ,加小数点,最后加负号。
//字符串删除某个指定字符。
str.erase(std::remove(str.begin(), str.end(), '.'), str.end());
string::size_type epos = str.find('E');
char symbol = str[epos+1];
int num = stoi(str.substr(epos+2));
str.erase(epos);
if(symbol=='-')
{
str.insert(0,num,'0');
str.insert(1,1,'.');
}
else
{
if(num<str.size()-1)
{
//加点不加0
str.insert(num+1,1,'.');
}
if(num>str.size()-1)//1.2 3
{
str.insert(str.size(),num-str.size()+1,'0');
}
}
if(!isPositiveNumber)
{
str.insert(0,1,'-');
}
cout<<str<<endl;
return 0;
}
PAT乙级1024
最新推荐文章于 2024-09-02 19:10:21 发布