# V624. Use of constant NN. The resulting value may be inaccurate. Consider using the M_NN constant from <math.h>.

The analyzer has detected a potential error occurring when handling constants of the double type. Perhaps poor accuracy constants are used for mathematical calculations or a constant is written with a misprint.

Consider this sample:

    double pi = 3.141592654;

This way of writing the constant is not quite correct and you'd better use mathematical constants from the header file 'math.h'. This is the correct code:

    #include <math.h>
    ...
    double pi = M_PI;

The analyzer doesn't show the warning when constants are written explicitly in the 'float' format. It is determined by the fact that the 'float' type has fewer significant digits than the 'double' type. Here is an example:

    float f = 3.14159f; //ok

This diagnostic is classified as:

CWE-547

You can look at examples of errors detected by the V624 diagnostic.