关于mysql中DOUBLE和FLOAT类型的问题

就是因为看了一文,所以设置了float(32,5)这样一个字段来测试float float是用4个([1,24))或者8个([24,53))字节存储数据,我设置了数据3647483999插入表中 结果得到3647483904.00000 ,修改任何小数部分也得到3647483904.00000 然而修改成3947483904.00000,...
关于mysql中DOUBLE和FLOAT类型的问题
就是因为看了<MySQL 3.23 中文参考手册>一文,所以设置了float(32,5)这样一个字段来测试float

float是用4个([1,24))或者8个([24,53))字节存储数据,

我设置了数据3647483999插入表中 结果得到3647483904.00000 ,修改任何小数部分也得到3647483904.00000 然而修改成3947483904.00000,3997483904.00000 却成功保存

我开始怀疑是不是mysql的float类型的数据的高位字节和低位字节之间的进位有问题啊?
后来发现应该是与科学记数法有关,不管你设置多少位小数,当整数部分超过512的时候 mysql总是以科学技术法的方式来保存数据....

不知道这个分析对不对?2008-07-16
如果操作天文数字的(20位数字以上),请选择Decimal 类型
(长度,小数点)尽量匹配你的位数,你上面的5,2已经溢出写不进去的2008-07-25
不管实际得出什么结果。请遵循一条,永远在数据库中操作正常的数据。当范围超出定义的范围后。系统无论出现什么情况都应当视为无效数据。从项目经验来看,研究这种问题浪费时间不值得,应该研究官方认为应该是这样的,但却不是这样。发生这种情况时,很可能是官方的软件bug,所以一般用补丁解决。不必过多投入时间。2008-07-21
太深奥了。。。留个记号 回来学习。。飘走~~~~2008-07-16
宽度限制了5 值太大溢出了2008-07-16
mengvlog 阅读 170 次 更新于 2025-12-15 05:45:50 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部