C中的字符串到十进制数

时间:2012-12-11 19:44:07

标签: c string

  

可能重复:
  Converting a string into a double

我需要在C中将" 5.71"转换为5.71

我在字符串中读取令牌,但需要将值存储为double。

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

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

任何帮助都会很棒!

3 个答案:

答案 0 :(得分:1)

您正在寻找strtod()

  

我应该使用哪种印刷语句?

double的格式说明符为%lf

答案 1 :(得分:0)

考虑使用

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

这应该是“标准”的方式。

答案 2 :(得分:0)

  

有没有这样做的功能?

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

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

我应该使用哪种印刷语句?

<\ n> Euh,它们被称为格式说明符。它们也有所不同,具体取决于具体类型:

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

printf("%f %lf %llf\n", f, d, ld);