![](/img/trans.png)
[英]Why does adding 1 to numeric_limits<float>::min() return 1?
[英]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
(這是直觀而邏輯的)
因此,有人可以向我解釋這種輸出差異嗎?
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.