我發現一些關於C編程和計算機精度的特性很有趣。 例如,在我的計算機中,如果我打印指示double的位精度的DBL_MANT_DIG變量(limits.h庫),則返回64.這表示64位尾數。這意味着我可以在尾數存儲多達19位數字。 但是,如果我要求電腦打印更多數字,比如printf("%.40lf",...),
,它仍然會打印它們。那些數字是什麼以及它們存儲在哪裏?在C語言中的計算機精度
另一件事是,如果打印變量DBL_MAX我得到:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368
這有超過19位數字。他們再次存儲在哪裏?
要打印此號碼我做的:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>
int main(void)
{
printf("Double Min/Max: %lf %lf\n", DBL_MIN, DBL_MAX);
printf("Digits mantissa (bit precission) double: %d\n", DBL_MANT_DIG);
return 0;
}
你應該顯示一些代碼。你是怎麼打印DBL_MAX的? –
@DougCurrie完成! –