#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
string str;
cin >> str;
int zero = 0;
int e;
int len = str.size();//问题
e = str.find("E");
if (str[0] == '-')
printf("-");
for (int i = e + 2; i < len; i++)//如果earse放在前面,earse删除后,长度减去了一,后面的下标前移了,一定要细心哇
{
zero = zero * 10 + (str[i] - '0');
}
if (str[e + 1] == '-')//负数
{
str.erase(str.begin() + 2);//删除时一定用str.begin();
printf("0.");
for (int i = 0; i < zero-1; i++)
printf("0");
cout << str.substr(1, e -2) << endl;
}
else //正数
{
if ((e - 3) == zero)//正好与小数点抵消
{
str.erase(str.begin() + 2);
cout << str.substr(1, e - 2) << endl;
}
else if ((e - 3) < zero)//比小数点大;
{
str.erase(str.begin() + 2);
zero -= e - 3;
cout << str.substr(1, e - 2);
while (zero--)
{
printf("0");
}
}
else//比小数点小
{
zero = e - 3 - zero;
str.insert(len - 1 - zero, ".");
str.erase(str.begin()+2);
cout << str;
}
}
return 0;
}
B1024
最新推荐文章于 2020-03-06 16:34:18 发布