計算機中的定點數與浮點數
在計算機中,數據有兩種表達方式:定點數和浮點數,注意,這僅僅是數的兩種表達方式,而不是兩種數。
定點數:小數點固定在某個位置上的數據,就是一般的寫法。 就好像 0.0000001 ,0.0001111;
浮點數:小數點位置可以浮動的數據。就像數學中的 1222.2*10^3也可以表示為1.2222*10^6;
定點數無須贅述,接下來說明一下浮點數:
浮點數數學表達方式:N=M*R^E
M(mantissa) 尾數
R 階的基數,即底數,就像上面的10,通常是一個常數,在計算機中一般為2、8、16,注意在一台計算機里,所有數據中的R是確定且相同的。
E(exponent) 階碼
計算機表達方式
Ms是尾數符號位,被設置到最高位上,為0或1,Ms與M組成一個定點小數
E是階碼,注意它也有符號位,所以用n+1(1為符號位)表示
例如:
單精度浮點數(32位),階碼8位,尾數24位
雙精度浮點數(64位),階碼11位,尾數53位
--------------------------------------------------------
mysql中的定點數與浮點數
定點數:DECIMAL(P,D),同Numeric(P,D)
浮點數:FLOAT、DOUBLE
mysql中的浮點數無須贅述,接下來說一下定點數:
P:
有效數字數的精度,范圍為1〜65
D:
小數點后的位數,范圍是0
~30
。MySQL要求D
小於或等於(<=
)P
即可以存儲D
位小數的P
位數。
備注:浮點數其實也能用(P,D)的方式表達,但這是不被推薦的