如何组合变量来表示C中的科学记数法?

时间:2014-02-01 03:39:34

标签: c scientific-notation

如果我有

a = 3;
b = 5;

我怎样才能这样做

double result = 3e5,但只使用变量?

我知道aeb显然不会起作用。

2 个答案:

答案 0 :(得分:5)

尝试:

double result = a * pow(10.0,(double)b);

或者,使用GNU扩展:

double result = a * exp10((double)b);

在任何一种情况下,#include math.h并与数学库链接(例如-lm)。这可能比拼接字符串并转换为double更有效。

答案 1 :(得分:3)

使用atofstdlib.h中定义的函数sprintf

float a = 3;
int b = 5;

char tmp[10];
sprintf(tmp, "%fe%d", a, b);

double x = atof(tmp);
printf("x = %fe%d = %f\n", a, b, x);

输出:http://ideone.com/NdDcNB

x = 3.000000e5 = 300000.000000