#include <stdio.h>
#include<string.h>
#include<math.h>
int main(void) {
int n, p, i, m, book[2] = {0}, sum, s, x;
char ch[99990];
x = 0;
scanf("%s", ch);
if (ch[0] == '-')
book[0] = 1;
if (ch[1] == '0')
x = 1;
for (i = 1; i < strlen(ch); i++) {
if (ch[i] == 'E')
m = i;
if (ch[i] == '-')
book[1] = 1;
}
n = m - 3;
if (ch[1] == '0')
p = n;
else
p = n + 1;
s =sum=0;
for (i = strlen(ch) - 1; i >= m + 2; i--)
{
sum += (ch[i] - '0') * (int)pow(10, s);
s++;
}
if (sum >= n&&book[1]==0) {
if (book[0] == 1)
printf("-");
for (i = 1; i <= m - 1; i++) {
if ((ch[i] == '0' && x == 1) || ch[i] == '.') {
x--;
continue;
}
else
printf("%c", ch[i]);
}
for (i = 1; i <= sum - n; i++)
printf("0");
}
if (sum < n && book[1] == 0&&sum!=0) {
if (book[0] == 1)
printf("-");
for (i = 1; i <= m - 1; i++) {
if ((ch[i] == '0' && x == 1) || ch[i] == '.') {
x--;
continue;
}
printf("%c", ch[i]);
if (i == sum + 2)
printf(".");
}
}
if (sum == 0) {
printf("1.");
for (i = 1; i <= p - 1; i++)
printf("0");
}
if (book[1] == 1&&sum!=0) {
if (book[0] == 1)
printf("-");
printf("0.");
for (i = 1; i <= sum - 1; i++)
printf("0");
for (i = 1; i <= m - 1; i++) {
if (ch[i] == '.')
continue;
printf("%c", ch[i]);
}
}
return 0;
}
1024 科学计数法
于 2022-01-22 08:45:50 首次发布