#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
string s1;
cin>>s1;
int len1 = s1.size(), cnt, num[10000] = {0}, k = 0, n = 0; //cnt记录E的位置,n记录指数
if(s1[0] == '-') printf("-");
for(int i = 0; i < len1; i++){
if(s1[i] >= '0' && s1[i] <= '9'){
num[k++] = s1[i] - '0'; //保存有效数位
}
else if(s1[i] == 'E') {
cnt = i;
break;
}
}
for(int i = cnt + 2; i < len1; i++){
n = n * 10 + s1[i] - '0'; //求指数
}
if(s1[cnt + 1] == '+'){ //指数为正
if(n + 1 >= k){
for(int j = 0; j <= n; j++)printf("%d", num[j]);
}
else{
for(int j = 0; j < cnt-2; j++){
printf("%d", num[j]);
if(j == n) printf(".");
}
}
}
else{ //指数为负
printf("0.");
for(int i = 0; i < n - 1; i++) printf("0");
for(int i = 0; i < cnt - 2; i++) printf("%d", num[i]);
}
return 0;
}
1024 科学计数法 (20分)
最新推荐文章于 2020-10-22 17:10:59 发布