-3

可能的重复:
将字符串转换为双精度

我需要转换" 5.71"5.71C。

我正在读取字符串作为标记,但需要将值存储为双精度值。

有没有这样做的功能?我应该使用什么打印语句?

char *number = "5.71";
printf("%???", double);

任何帮助都会很棒!

4

3 回答 3

1

您正在寻找strtod().

我应该使用什么打印语句?

的格式说明符double%lf.

于 2012-12-11T19:46:32.653 回答
0

有没有这样做的功能?

是的,strtod、strtof 和 strtold分别将字符串转换为doublefloatlong double。例如:

float f = strtof("2.718281829", NULL);

我应该使用什么打印语句?

呃,它们被称为格式说明符。它们也有所不同,具体取决于确切的类型:

float f = 3.14;
double d = 3.14;
long double ld = 3.14;

printf("%f %lf %llf\n", f, d, ld);
于 2012-12-11T19:49:32.103 回答
0

考虑使用

sscanf(number, "%f", &doubleVar);

这应该是做到这一点的“标准”方式。

于 2012-12-11T19:48:12.787 回答