簡體   English   中英

為什么std :: numeric_limits <float> :: min()在流式傳輸到具有不同功能的輸出時,行為不同嗎?

[英]why does std::numeric_limits<float>::min() differ in behavior when streamed to output with different functions?

我有一個奇怪的行為

 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 (這是直觀而邏輯的)

因此,有人可以向我解釋這種輸出差異嗎?

cppreference numeric_limits

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

使用%f顯示的返回值(實際上不是0 )實際上被格式化為固定的小數位數。 '%f'格式以固定格式打印6個小數位。

您可以使用 :

%e=gives the scientific notation
%g=handles large floating numbers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM