#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.00atoll() 的原因是因为它在找到第一个非数字时停止解析。

    *注意 strtof() 需要 C99 或 C++11。

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

    10-13 07:24