我想将字符串转换为浮点值。看看我的小程序:
#include <stdio.h>
int main() {
char string[3] = "42";
double value = atof(string);
printf("Floating-point value: %f\n", value);
return 0;
}
当我运行它时,我明白了:
Floating-point value: 327680.000000
为什么呢?使用atoi
从字符串到整数的转换效果非常好!
如果你知道为什么会这样,请分享你的智慧。 :)
答案 0 :(得分:4)
char string[2] = "42";
应该是
char string[3] = "42";
"42"
数组的大小为3个字节,因为您必须计算尾随空字符。如果您希望使用char string[2]
进行声明,则string
将不会以空值终止。
然后你必须包含stdlib.h
atof
声明的文件:
#incude <stdlib.h>