我正在尝试解析 C 中的参数值并将数字转换为 double 值。我有:
char *stringEnd;
double num = strtod("123.0", &stringEnd);
我使用 "123.0"
只是为了测试函数,但它总是返回 0.0
的值。有人知道我做错了什么吗?
最佳答案
您是否包含相关标题?即: #include <stdlib.h>
不过首先(无论如何你应该一直这样做),尝试编译所有警告(在 GCC 上为 -Wall
)。
如果您收到有关 strtod
的警告未定义,表明问题出在哪里。
这是一个讨厌的函数,因为 C 会隐式声明任何它没有原型(prototype)的函数返回 int
。 !
关于C 从参数字符串中解析 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2220272/