2

我有一个奇怪的行为

 std::numeric_limits<float>::min()

当我调用 std::cout 时,我得到的输出值为 1.17549e-38

相反,当我使用

printf("%f", std::numeric_limits<float>::min());

我得到的值为 0.000000。

请注意,当我评估 ( std::numeric_limits<float>::min() == std::numeric_limits<float>::min()) 时,我得到true(这是直观且合乎逻辑的)

那么,任何人都可以向我解释这种输出差异吗?

4

1 回答 1

4

numeric_limits 的 cppreference

std::numeric_limits<float>::min()返回FLT_MIN

使用显示的返回值(实际上并非如此0%f实际上已格式化为固定的小数位数。该'%f'格式以固定格式打印 6 位小数。

您可以使用 :

%e=gives the scientific notation
%g=handles large floating numbers
于 2016-12-25T06:50:31.750 回答