2012-12-11 46 views
-3

可能重複:
Converting a string into a double字符串的十進制數用C

我需要" 5.71"轉換爲5.71在C.

我讀的字符串作爲令牌,但需要將該值存儲爲double。

有沒有這樣做的功能?我應該使用哪種打印語句?

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

任何幫助將是偉大的!

+1

[字符串轉換爲雙(http://stackoverflow.com/questions/4308536/converting-a-string-into-a-double) ,[將字符串轉換爲雙精度](http://stackoverflow.com/questions/5601537/converting-a-string-to-double) – ljedrz

+0

和其他多個。 – ljedrz

回答

1

您正在尋找strtod()

我應該使用哪種打印語句?

double的格式說明符是%lf

+1

...和Google ... – 2012-12-11 19:49:53

0

考慮使用

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

這應該是 '標準' 的方式來做到這一點。

0

有沒有這樣做的功能?

是,strtod, strtof and strtold將字符串轉換爲double,分別floatlong 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); 
相關問題