1

我正在尝试将字符串转换为浮点值。看一下我的小程序:

#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效果很好!

如果您知道这是为什么,请分享您的智慧。:)

4

1 回答 1

4
char string[2] = "42";

应该

char string[3] = "42";

数组的大小"42"为 3 个字节,因为您必须计算尾随的空字符。如果您想char string[2]用于声明,您string将不会被空终止。

然后你还必须包含声明stdlib.h文件atof

#incude <stdlib.h>
于 2013-11-10T17:05:13.280 回答