根据this link的说法,C中的浮点数据类型的范围从1.2E-38到3.4E+38,并且有6位小数精度。
然而,在我看来,值1.2E-38需要比6位小数精度更高的精度才能表示。
我的推理出了什么问题?
发布于 2016-08-10 06:10:41
简而言之,浮点数使用指数来表示数字,而不是像整数那样的2的补数。User3386109的链接解释了它,但是here is a link to an interactive app让你看到每个比特是如何影响最终结果的。我认为你玩弄这些东西会比解释或者链接到维基百科页面更有帮助。
发布于 2019-07-25 09:13:06
计算机使用科学记数法存储浮点值。如果浮点值为293.990933,则科学记数法为0.293990933 * 10^3
此处0符号位
293990933被称为mantisa
3称为指数
保留:用于符号位1的二进制数字。对于mantisa,它可以有24位,其余的32位将用于指数!
默认情况下,当你使用%f时,它会返回数字的6小数!
https://stackoverflow.com/questions/38861057
复制相似问题