浮点数的科学计数法问题
求码神帮忙看看这题:
输入一个浮点数如:0.000000123,可知道其科学计数法是1.23e-7
那怎么去分解到科学计数法里面的 整数部分、小数部分和指数部分。
pu32BER[0]:误码率底数的整数部分
pu32BER[1]:误码率底数的小数部分乘以1000
pu32BER[2]:误码率指数部分取绝对值
例如:误码率为2.156E-7,那么三个元素的取值分别为 2、156和7
浮点数 科学计数法
[解决办法]
#include <stdio.h>
int main() {
double a=0.000000123;
char str[40];
int pu32BER[3];
//pu32BER[0]:误码率底数的整数部分
//pu32BER[1]:误码率底数的小数部分乘以1000
//pu32BER[2]:误码率指数部分取绝对值
sprintf(str,"%le",a);
printf("%s\n",str);//1.230000e-007
sscanf(str,"%d.%3d%*3de%*c%d",&pu32BER[0],&pu32BER[1],&pu32BER[2]);
printf("pu32BER[0]=%d\n",pu32BER[0]);//32BER[0]=1
printf("pu32BER[1]=%d\n",pu32BER[1]);//pu32BER[1]=230
printf("pu32BER[2]=%d\n",pu32BER[2]);//pu32BER[2]=7
return 0;
}