如果我有
a = 3;
b = 5;
我怎样才能这样做
double result = 3e5,但只使用变量?
我知道aeb显然不会起作用。
答案 0 :(得分:5)
尝试:
double result = a * pow(10.0,(double)b);
或者,使用GNU扩展:
double result = a * exp10((double)b);
在任何一种情况下,#include math.h并与数学库链接(例如-lm
)。这可能比拼接字符串并转换为double更有效。
答案 1 :(得分:3)
使用atof
和stdlib.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);
x = 3.000000e5 = 300000.000000