mysql中涉及金钱使用什么数据类型

发布时间 2023-07-27 15:47:46作者: 一个苦逼的23届毕业生

一般使用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值不包含小数点或小数部分。