[C.C++] C++ atof

349 0
Honkers 2025-5-10 20:35:48 | 显示全部楼层 |阅读模式

头文件

  1. #include <stdlib.h>
复制代码

函数原型

  1. double atof(const char *str);
复制代码

函数说明

  • atofascii to floating point numbers 的缩写,将字符串转换为双精度浮点数(double);
  • atof() 会扫描输入字符串 str*,跳过前面的空格字符(如空格,tab等),直到遇到数字或正负符号才开始做转换,在遇到非数字 或 该字符串结束(‘\0’) 时会结束转换,并将结果返回。 字符串 str* 可包含正负号、小数点或E(e)来表示指数部分,如 123.456 或 123e-2;

返回值

返回转换后的浮点数,如果字符串 str* 不能被转换为 double,则返回 0.0(如果 atof() 先遇到字符,返回 0.0)。

示例

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define NUM (255)
  4. int main()
  5. {
  6. char a[NUM] = "-110.3456";
  7. char b[NUM] = "-123.4 56.78";
  8. char c[NUM] = "1234hsf";
  9. char d[NUM] = "ada1234";
  10. char e[NUM] = "1234aaf1456";
  11. char f[NUM] = "1234aaf 1456";
  12. char g[NUM] = "200e-2";
  13. printf("a = %.4lf\n",atof(a));
  14. printf("b = %.2lf\n",atof(b));
  15. printf("c = %.2lf\n",atof(c));
  16. printf("d = %.2lf\n",atof(d));
  17. printf("e = %.2lf\n",atof(e));
  18. printf("f = %.2lf\n",atof(f));
  19. printf("g = %.2lf\n",atof(g));
  20. return 0;
  21. }
复制代码

执行结果为:
a = -110.3456
b = -123.40
c = 1234.00
d = 0.00
e = 1234.00
f = 1234.00
g = 2.00

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4012
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行