mysql-資料處理函式
阿新 • • 發佈:2021-01-30
大佬程式碼學習
浮點數轉化
#include<bits/stdc++.h>
using namespace std;
double M[20][40];
long long E[20][40];
int main()
{
//打表
for(int i=0;i<10;i++){
for(int j=1;j<=30;j++){
double m = 1-pow(2,-1-i), e=pow(2,j)-1;
double t = log10(m) + e*log10(2);
E[ i][j] = t;
M[i][j] = pow(10,t-E[i][j]);
}
}
string in;
while(cin>>in && cin != "0e0"){
for(string::iterator i = in.begin(); i !=in.end();i++){ //其中的string::iterator i 為迭代器,其中i為變數類似於指標,*i即指標現在所指向的字元
if(*i == 'e') *i = ' '; //in.begin()取字串收字元end同理
}
istringstream ss(in); //將in字串內的內容重新分配到輸入ss內
double A; int B;
ss >> A >> B; //將ss內的內容賦值給A和B
while(A<1) A *= 10, B -= 1;
for(int i=0; i<=9;i++){
for (int j=1;j<=30;j++){
if(B == E[i][j] && fabs(A - M[i][j]) < 1e-4){
cout<< i << ' ' << j << endl;
break;
}
}
}
}
return 0;
}