A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../algorithm/../../cpp/../c/numeric/math/nan.html below:

nan, nanf, nanl, nand32, nand64, nand128

float       nanf( const char* arg );

(1) (since C99)

double      nan( const char* arg );

(2) (since C99)

long double nanl( const char* arg );

(3) (since C99)

_Decimal32  nand32( const char* arg );

(4) (since C23)

_Decimal64  nand64( const char* arg );

(5) (since C23)

_Decimal128 nand128( const char* arg );

(6) (since C23)

Converts the implementation-defined character string arg into the corresponding quiet NaN value, as if by calling the appropriate parsing function strtoX, as follows:

1)

The parsing function is

strtof

.

2)

The parsing function is

strtod

.

3)

The parsing function is

strtold

.

4) The parsing function is strtod32.

5) The parsing function is strtod64.

6) The parsing function is strtod128.

The functions returning decimal floating point values are declared if and only the implementation predefines __STDC_IEC_60559_DFP__ (i.e. the implementation supports decimal floating point numbers).

(since C23) [edit] Parameters arg - narrow character string identifying the contents of a NaN [edit] Return value

The quiet NaN value that corresponds to the identifying string arg or zero if the implementation does not support quiet NaNs.

If the implementation supports IEEE floating-point arithmetic (IEC 60559), it also supports quiet NaNs.

[edit] Error handling

This function is not subject to any of the error conditions specified in math_errhandling.

[edit] Example
#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);
}

Possible output:

nan("1")   = nan (7ff8000000000001)
nan("2")   = nan (7ff8000000000002)
nan("0xF") = nan (7ff800000000000f)
[edit] References
[edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4