好的,在我的C程序中,我有一个函数,它从文件中获取一个浮点值,这里我试图做相反的事情,获取字符串并将其转换为浮点值。

 float PsSc = atoi(stock01[DataCount].defPsSc);

我知道我的错误,我以为它对整数和浮点数都有效,但事实并非如此。
我试过了
 float PsSc = atof(stock01[DataCount].defPsSc);

这也不管用。
所以,我的问题是:我可以用什么来替换当前的代码行?
输入:1.45。预期产量:1.45,实际产量:1.00
编辑:
 printf("\nYour previous speed was : %.2f Metres per Second",PsSc);

最佳答案

为什么我们不应该使用atof
成功时,atof()函数将转换后的浮点数作为双精度值返回。如果无法执行有效的转换,则函数返回零(0.0)。如果转换后的值超出double可表示值的范围,则会导致未定义的行为。
相反,我们应该使用strtod()中的<stdlib.h>present in

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    char s[] = "1.45";
    printf("Float value : %4.2f\n",strtod(s,NULL));
    return 0;
}

它将正确打印1.45
请参见此处的插图http://ideone.com/poalgY

关于c - 将字符串转换为浮点数在C中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27986672/

10-10 21:26
查看更多