科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。
现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。
输入格式:
每个输入包含1个测试用例,即一个以科学计数法表示的实数A。该数字的存储长度不超过9999字节,且其指数的绝对值不超过9999。
输出格式:
对每个测试用例,在一行中按普通数字表示法输出A,并保证所有有效位都被保留,包括末尾的0。
输入样例1:+1.23400E-03输出样例1:
0.00123400输入样例2:
-1.2E+10输出样例2:
-12000000000//#include <iostream> //#include <vector> //#include <string> // //using namespace std; // //int main() //{ // string A; // cin >> A; // char fuhao1 = A[0];//记录第一个符号 // string B = ""; // vector<char> b; //用于存储实际有效的位数 // char temp = 0; // int flag = 0; // int lenth = A.size(); // for (int i = 1; i<lenth; i++) // { // if (A[i] != '.') // { // if (A[i + 1] == 'E') // { // flag = i + 2; // b.push_back(A[i]); // break; // } // else // b.push_back(A[i]); // } // } // char fuhao2 = A[flag]; //记录第二个符号 // int weishu = 0; // for (int i = flag + 1; i<lenth; i++) // { // weishu = weishu * 10 + (A[i] - '0'); // } // /*****************完成解析**************/ // int temp1 = weishu - b.size() + 1; // if (fuhao2 == '+') //为正的情况下 // { // if (temp1 >= 0)//不需要添加小数点 // { // for (int i = 0; i<b.size(); i++) // { // B.append(1, b[i]);//原来参数写错了 // } // B.append(temp1, '0'); // } // else // { // for (int i = 0; i<b.size(); i++) // { // B.append(1, b[i]); // if (i == weishu) // B.append(1, '.'); // } // } // } // else //位数为负的情况下 // { // if (weishu > 0) // { // B.append(1, '0'); // B.append(1, '.'); // B.append(weishu - 1, '0'); // for (int i = 0; i<b.size(); i++) // { // B.append(1, b[i]);//原来参数写错了 // } // } // else //为0时候,直接输出 // { // B.append(1, b[0]); // B.append(1, '.'); // for (int i = 1; i<b.size(); i++) // { // B.append(1, b[i]);//原来参数写错了 // } // } // } // if (fuhao1 == '+') // cout << B << endl; //不需要直接输出的负号 // else // cout << fuhao1 << B << endl;//负数,需要输出负号 // system("pause"); // return 0; //}