无限循环的小数存入数据库的时候有精度丢失,获取出来之后与之前的数据对不上,比如说我要保存3条1/3的无限小数数据,然后获取出来的时候能保证这3条数据的相加结果能等于1,怎么有效解决.?
无限循环的小数存入数据库的时候有精度丢失,获取出来之后与之前的数据对不上,比如说我要保存3条1/3的无限小数数据,然后获取出来的时候能保证这3条数据的相加结果能等于1,怎么有效解决.?
浮点数加减的问题你是无法避免的,你只能保证你写入的数值和读出的数值上的一致;
数据库字段才用二进制格式,直接写入原始float值的二进制字节数值;
读出后采用该二进制数值恢复到float类型
浮点数加减部分无解,你只能提高float的精度,采用double等类型;
4 回答1.2k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答705 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.6k 阅读
2 回答1.3k 阅读
用长文本类型来保存
mysql中的
LONGTEXT
最大长度为4,294,967,295个字符 应该够用了吧其他数据库也有类似对应的长文本类型
update 2016-1-12 17:47:49
分数你直接用字符串来存就好了
比如
1/3
,然后取出运算还原结果