zoukankan      html  css  js  c++  java
  • C语言atof()函数:将字符串转换为double(双精度浮点数)

    头文件:#include <stdlib.h>

    函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:
    double atof (const char* str);

    atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。

    【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。

    温馨提示:ANSI C 规范定义了 stof()atoi()atol()strtod()strtol()strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习;使用 atof() 与使用 strtod(str, NULL) 结果相同。另外在 C99 / C++11 规范中又新增了5个函数,分别是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介绍,请大家自行学习。

    范例:
    #include <stdio.h>
    #include <stdlib.h>
    int main(){
        char *a = "-100.23",
             *b = "200e-2",
             *c = "341",
             *d = "100.34cyuyan",
             *e = "cyuyan";
    
        printf("a = %.2f
    ", atof(a));
        printf("b = %.2f
    ", atof(b));
        printf("c = %.2f
    ", atof(c));
        printf("d = %.2f
    ", atof(d));
        printf("e = %.2f
    ", atof(e));
    
        system("pause");
        return 0;
    }
    执行结果:
    a = -100.23
    b = 2.00
    c = 341.00
    d = 100.34
    e = 0.00
  • 相关阅读:
    hdu 5053 the Sum of Cube
    [LeetCode] Word Pattern
    [LeetCode] Minimum Depth of Binary Tree
    [C++] std::vector
    [LeetCode] Count Binary Substrings
    [LeetCode] Degree of an Array
    [LeetCode] String to Integer (atoi)
    [LintCode] 比较字符串
    [LeetCode] Valid Parentheses
    [LeetCode] Perfect Number
  • 原文地址:https://www.cnblogs.com/qiuchangyong/p/5323349.html
Copyright © 2011-2022 走看看