创建mysql数据表的时候,经常会遇到存储小数(浮点数)的情况,如:价格,重量,身高等。
目前大的公司流行三种存储方案:
1、将数据扩大10的倍数达到使用整数类型存储目的。
比如价格,我们经常以分为单位进行存储,也就是将数据扩大100倍,这样元改成分存储。
重量可以用克为单位,如果克还是小数,就以毫克,微克等单位进行存储。
2、使用decimal类型的方式存储
比如价格,我们可以使用两位小数的精度进行存储。强烈不建议采用float或者double的类型存储,会存在精度损失的问题,在以后做值比较的时候,容易出现不正确的结果。
3、小数和整数部分分开存储。
比如价格3.14,我们存成两个字段,一个字段存储3,一个字段存储14,一般情况下用的少。当存储的数据范围超出decimal的范围时,可以将数据按照整数和小数拆分。
这里推荐第一种方案。