首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C:将字符串转换为Double会产生奇怪的结果。

C:将字符串转换为Double会产生奇怪的结果。
EN

Stack Overflow用户
提问于 2013-11-10 17:04:30
回答 1查看 93关注 0票数 1

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

代码语言:javascript
运行
复制
#include <stdio.h>

int main() {
        char string[3] = "42";
        double value = atof(string);
        printf("Floating-point value: %f\n", value);
        return 0;
}

当我运行它时,我得到了这个:

代码语言:javascript
运行
复制
Floating-point value: 327680.000000

为什么?使用atoi将字符串转换为整数非常有效!

如果你知道原因,请分享你的智慧。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-10 17:05:13

代码语言:javascript
运行
复制
char string[2] = "42";

应该是

代码语言:javascript
运行
复制
char string[3] = "42";

"42"数组的大小为3个字节,因为必须计算尾空字符。如果要对声明使用char string[2],则不会终止string

然后,您还必须为声明包含stdlib.h文件:

代码语言:javascript
运行
复制
#incude <stdlib.h>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19892463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档