可能的重复:
将字符串转换为双精度
我需要转换" 5.71"
为5.71
C。
我正在读取字符串作为标记,但需要将值存储为双精度值。
有没有这样做的功能?我应该使用什么打印语句?
char *number = "5.71";
printf("%???", double);
任何帮助都会很棒!
可能的重复:
将字符串转换为双精度
我需要转换" 5.71"
为5.71
C。
我正在读取字符串作为标记,但需要将值存储为双精度值。
有没有这样做的功能?我应该使用什么打印语句?
char *number = "5.71";
printf("%???", double);
任何帮助都会很棒!
有没有这样做的功能?
是的,strtod、strtof 和 strtold分别将字符串转换为double
、float
和long 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);
考虑使用
sscanf(number, "%f", &doubleVar);
这应该是做到这一点的“标准”方式。