mysql中涉及金钱使用什么数据类型
一般使用decimal
decimal、float、double对比
- decimal(9,2):9(precision)代表将被用于存储值的总的小数位数,而
2(scale)代表将被用于存储小数点后的位数。从-9999999.99 到 99999999.99
float类型表示单精度浮点数值,
double类型表示双精度浮点数值,float和double都是浮点型,
而decimal是定点型;
不使用float或者double的原因
- 因为float和double是以二进制存储的,所以有一定的误差。 DECIMAL值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小数精度。一个字符用于值的每一位、小数点(如果scale>0)和“-”符号(对于负值)。如果scale是0,DECIMAL和NUMERIC值不包含小数点或小数部分。