#include<stdio.h>
#include<string.h>
int main()
{
char s[100] ="4.0800" ;
printf("float value : %4.8f\n" ,(float) atoll(s));
return 0;
}
我希望输出应该是
4.08000000
而我只有 4.00000000
。有没有办法得到点后的数字?
最佳答案
使用 atof()
或 strtof()
* 代替:
printf("float value : %4.8f\n" ,atof(s));
printf("float value : %4.8f\n" ,strtof(s, NULL));
http://www.cplusplus.com/reference/clibrary/cstdlib/atof/
http://www.cplusplus.com/reference/cstdlib/strtof/
atoll()
表示整数。 atof()
/strtof()
用于浮点数。 你只得到
4.00
和 atoll()
的原因是因为它在找到第一个非数字时停止解析。*注意
strtof()
需要 C99 或 C++11。关于c - 如何将字符串转换为浮点数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7951019/