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