1. 程式人生 > 實用技巧 >nanl (Numerics) – C 中文開發手冊 - Break易站

nanl (Numerics) – C 中文開發手冊 - Break易站

[
  •   C 語言中文開發手冊

    nanl (Numerics) - C 中文開發手冊

    在標頭檔案<math.h>中定義
    float nanf( const char* arg ); (since C99)
    double nan( const char* arg ); (since C99)
    long double nanl( const char* arg ); (since C99)

    實現定義字串轉換arg成相應的靜態NaN值,則通過呼叫strtof,strtod或者strtold,分別說明如下:通話nan("string")等同於通話strtod("NAN(string)", (char**)NULL);。通話nan("")等同於通話strtod("NAN()", (char**)NULL);。通話nan(NULL)等同於通話strtod("NAN", (char**)NULL);。

    引數

    arg - 窄字串標識NaN的內容

    返回值

    安靜的NaN值與標識字串相對應,arg或者如果實現不支援安靜的NaN,則為零。

    #include <stdio.h>
    #include <math.h>
    #include <stdint.h>
    #include <inttypes.h>
    #include <string.h>
     
    int main(void)
    {
        double f1 = nan("1");
        uint64_t f1n; memcpy(&f1n, &f1, sizeof f1);
        printf("nan(\"1\")   = %f (%" PRIx64 ")\n", f1, f1n);
     
        double f2 = nan("2");
        uint64_t f2n; memcpy(&f2n, &f2, sizeof f2);
        printf("nan(\"2\")   = %f (%" PRIx64 ")\n", f2, f2n);
     
        double f3 = nan("0xF");
        uint64_t f3n; memcpy(&f3n, &f3, sizeof f3);
        printf("nan(\"0xF\") = %f (%" PRIx64 ")\n", f3, f3n);
    }

    可能的輸出:

    nan("1")   = nan (7ff8000000000001)
    nan("2")   = nan (7ff8000000000002)
    nan("0xF") = nan (7ff800000000000f)
  •   C 語言中文開發手冊
    ]
  •   本文標題:nanl (Numerics) – C 中文開發手冊 - Break易站轉載請保留頁面地址:https://www.breakyizhan.com/c-3/27773.html