#1
|
||||
|
||||
float和double
想請教一下,float(單精度浮點數)和double(倍精度浮點數)這二個是數學名詞還是電腦名詞?
它們的不同主要在於要占用的記憶體大小不同,是嗎? 書上說,一個char型態是8 bits =1 byte,但int 在16位元的環境下可占16 bits,但在32位元的環境下則占 32bits,那char呢?還是8 bits? float and double也會隨著環境改變所占記憶體大小嗎? 那我現在64位元的電腦,表示宣告int就可以儲存比-2147483648到2147483647還要再多的數值嗎? thanks, |
#3
|
|||
|
|||
引用:
那最大的差異是? 看底下2段Code就知道了 代碼:
float a = 1.f / 81; float b = 0; for (int i = 0; i < 729; ++ i) b += a; printf("%.7g\n", b); // prints 9.000023 代碼:
double a = 1.0 / 81; double b = 0; for (int i = 0; i < 729; ++ i) b += a; printf("%.15g\n", b); // prints 8.99999999999996 Int的部分,主要是依照Compiler解釋,如果要準確來說,請使用 uint16_t uint32_t 這類來定義 |