浮点数比c ++小于IEEE 754

Ner*_*har 2 c++ floating-point ieee-754

我尝试进行以下划分:1/16777216,等于5.96046448e-8 但是这个:

printf("number: %f \n", 1.0f / 16777216.0f);      
Run Code Online (Sandbox Code Playgroud)

总是给我0.00000而不是我期望的答案.我抬起了范围,因为我认为,这可能是一个问题,浮动只是为了处理这样一个数字,但IEEE 754声明它±1.18×10?38.

我错过了什么,这就是为什么结果不是预期的结果?

Die*_*ühl 9

使用固定格式(%f)时,您将获得一个小数点和最多6位数的格式.由于您使用的值会舍入到小于打印0.000001似乎合理的值0.000000.您可以使用更多数字(我认为使用%.10f但我不擅长<stdio.h>格式说明符)或者您更改格式以使用科学记数法(%e)或两个选项的"更好"(%g).