I got a weird behaviour with
std::numeric_limits<float>::min()
when I call std::cout I get an output value of 1.17549e-38
in contrast when I use
printf("%f", std::numeric_limits<float>::min());
I get a value of 0.000000.
note that when I evaluate (std::numeric_limits<float>::min() == std::numeric_limits<float>::min()
) I get true
(which is intuitive and logical)
so, can any one explain to me this difference in output?
cppreference for numeric_limits:
std::numeric_limits<float>::min()
returnsFLT_MIN
.The returned value (which is not
0
in reality) displayed using%f
is actually formatted to fixed number of decimal places. The'%f'
format prints 6 decimal places in fixed format.You can use :