定点数与浮点数
计算机中的定点数与浮点数
在计算机中,数据有两种表达方式:定点数和浮点数,注意,这仅仅是数的两种表达方式,而不是两种数。
定点数:小数点固定在某个位置上的数据,就是一般的写法。 就好像 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)的方式表达,但这是不被推荐的