mysql float 精度阶段_MySQL float类型范围和精度混淆

IEEE浮点表示不是MySQL独有的.它遵循所有地方使用的相同标准.

1)忽略长度说明符,那只是噪音.在MySQL中,确切有两种浮点数据类型:单精度(32位)和双精度(64位).

可选的长度说明符只是提供了另一种方式来指定DOUBLE.

alter table t add foo FLOAT(4), add bar FLOAT(40) ;

相当于

alter table t add foo FLOAT , add bar DOUBLE ;

2)1e38中的38是10的指数幂.

1.0 x 10^38

在不深入所有细节的情况下,浮点数本质上表示为

sign * mantissa * (radix ^ exponent)

例如,在base10中,我们可以通过以下方式表示值123.45:

+1 * 0.12345 * ( 10 ^ 3 )

或者,我们可以使用base2,并用2的幂表示一个值(0到1之间).

3)1e39(1.0 * 10 ^ 39)大于可以用IEEE单精度FLOAT表示的值的范围. (“可表示的最大IEEE 754浮点值是2 * 2 ^ ?23 * 2 ^ 27,大约是3.402×10 ^ 38.

双精度浮点支持更大范围的值,最大为10 ^ 308.

4)范围是最小值到最大值.对于DOUBLE,范围是-1 * 10 ^ 308到10 ^ 308.

精度基本上是可以表示的位数.对于单精度FLOAT,我们获得大约7个十进制数字的精度.对于DOUBLE,我们的精度约为15位十进制数字的两倍.

IEEE浮点并不是MySQL独有的.几乎所有现代处理器都包含浮点算术单元,它们对浮点数进行运算.

参考文献:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值