科學計數法字串轉為對應的十進位制程式-C程式碼

Nuspen發表於2020-11-25

// 將科學計數字符串轉為 對應十進位制
// str為科學計數法表示的數值字串(需要內容正確,否則只轉化 從start位起始到end中的一段最大數值長度)
double SciCoun2Deci(const char str, int start, int end)
{
double pre_num = 0.0, num = 0.0; // 用於記錄E值前的數值;用於記錄過程值
int decimal = 0, symbol = 1; // 用於記錄小數點位置, 用於記錄正負符號
while(start < end)
{
switch(str[start])
{
case ‘+’: break;
case ‘-’: symbol = -1; break;
case ‘.’: decimal = 1; break;
case ‘E’:
case ‘e’: pre_num = symbol
num; symbol = 1; num = 0.0; break;
default: num = 10num + str[start] - ‘0’;
if(decimal^0 && pre_num == 0) decimal++;
}
start++;
}
num = pre_num
pow(10.0, symbol*num + 1 - decimal);
return num;
}

相關文章