C語言atof()函數:將字符串轉換為double(雙精度浮點數)


頭文件:#include <stdlib.h>

函數 atof() 用於將字符串轉換為雙精度浮點數(double),其原型為:
double atof (const char* str);

atof() 的名字來源於 ascii to floating point numbers 的縮寫,它會掃描參數str字符串,跳過前面的空白字符(例如空格,tab縮進等,可以通過 isspace() 函數來檢測),直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字符串結束時('\0')才結束轉換,並將結果返回。參數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\n", atof(a));
    printf("b = %.2f\n", atof(b));
    printf("c = %.2f\n", atof(c));
    printf("d = %.2f\n", atof(d));
    printf("e = %.2f\n", atof(e));

    system("pause");
    return 0;
}
執行結果:
a = -100.23
b = 2.00
c = 341.00
d = 100.34
e = 0.00


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM