雙精度浮點數是計算機使用的一種資料型別。比起單精度浮點數僅有 32 位元（4 位元組），雙精度浮點數使用 64 位元（8 位元組） 來儲存一個浮點數。 它可以表示二進位制的 53位 有效數字，其可以表示的數字的絕對值範圍為 21024 21024 。 格式 sign bit（符號）：用來表示正負號 exponent（指數）：用來表示次方數 mantissa（尾數）：用來表示精確度 符號 0 代表數值為正，1 代表數值為負。 指數 共有 11 個位元 ， 使用「」， 有 2 個例外分別為 「11 個位元皆為 0」 「11 個位元皆為 1」 並且以 1023 為偏移標準，表示實際指數為 0，因此指數範圍為 1022 到 1023： 指數 00016 和 7ff16 具有特殊意義： 000000000002 00016 當尾數為 0 時為 0，尾數不為 0 時為非正規形式的浮點數。 111111111112 7ff16 當尾數為 0 時為，尾數不為 0 時為 NaN。 尾數 在二進位的「科學記號」，數字被表示為： text 1mantissa times text 2text exponent 二進位的「科學記號」（a2n）的 a 的範圍是大於等於 1 而小於 2，例如： 二進位制的 text 11101 times text 2text 1001 可以規格化為 text 11101 times text 2text 1010，儲存時尾數只需要儲存 1101 即可。 二進位制的 text 000110011 times text 21001 可以規格化為 text 110011 times text 21100，儲存時尾數只需要儲存 10011 即可。 小結 根據以上的敘述，一個雙精度浮點數所代表的數值為： 1text sign times 2text exponent times 1text mantissa 例子 0 01111111111 00000000000000000000000000000000000000000000000000002 3FF0 0000 0000 000016 20 1 1 0 01111111111 00000000000000000000000000000000000000000000000000012 3FF0 0000 0000 000116 20 1 252 10000000000000002 the smallest number 1 0 01111111111 00000000000000000000000000000000000000000000000000102 3FF0 0000 0000 000216 20 1 251 10000000000000004 0 10000000000 00000000000000000000000000000000000000000000000000002 4000 0000 0000 000016 21 1 2 1 10000000000 00000000000000000000000000000000000000000000000000002 C000 0000 0000 000016 21 1 2 0 10000000000 10000000000000000000000000000000000000000000000000002 4008 0000 0000 000016 21 112 112 3 0 10000000001 00000000000000000000000000000000000000000000000000002 4010 0000 0000 000016 22 1 1002 4 0 10000000001 01000000000000000000000000000000000000000000000000002 4014 0000 0000 000016 22 1012 1012 5 0 10000000001 10000000000000000000000000000000000000000000000000002 4018 0000 0000 000016 22 112 1102 6 0 10000000011 01110000000000000000000000000000000000000000000000002 4037 0000 0000 000016 24 101112 101112 23 0 01111111000 10000000000000000000000000000000000000000000000000002 3F88 0000 0000 000016 27 112 0000000112 001171875 3256 0 00000000000 00000000000000000000000000000000000000000000000000012 0000 0000 0000 000116 21022 252 21074 49406564584124654 10324 Min subnormal positive double 0 00000000000 11111111111111111111111111111111111111111111111111112 000F FFFF FFFF FFFF16 21022 1 252 22250738585072009 10308 Max subnormal double 0 00000000001 00000000000000000000000000000000000000000000000000002 0010 0000 0000 000016 21022 1 22250738585072014 10308 Min normal positive double 0 11111111110 11111111111111111111111111111111111111111111111111112 7FEF FFFF FFFF FFFF16 21023 1 1 252 17976931348623157 10308 Max Double 0 00000000000 00000000000000000000000000000000000000000000000000002 0000 0000 0000 000016 0 1 00000000000 00000000000000000000000000000000000000000000000000002 8000 0000 0000 000016 0 0 11111111111 00000000000000000000000000000000000000000000000000002 7FF0 0000 0000 000016 positive infinity 1 11111111111 00000000000000000000000000000000000000000000000000002 FFF0 0000 0000 000016 negative infinity 0 11111111111 00000000000000000000000000000000000000000000000000012 7FF0 0000 0000 000116 NaN sNaN on most processors such as x86 and ARM 0 11111111111 10000000000000000000000000000000000000000000000000012 7FF8 0000 0000 000116 NaN qNaN on most processors such as x86 and ARM 0 11111111111 11111111111111111111111111111111111111111111111111112 7FFF FFFF FFFF FFFF16 NaN an alternative encoding of NaN 0 01111111101 01010101010101010101010101010101010101010101010101012 3fd5 5555 5555 555516 22 1 22 24 252 13 0 10000000000 10010010000111111011010101000100010000101101000110002 4009 21fb 5444 2d1816 pi 參考文獻 參閱 IEEE 二進位制浮點數算術標準（IEEE 754） 浮點數 Category 資料型別 Category 二進位制算術 Category 計算機算術