欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

float与decimal区别?

shiping1 的头像

程序员必上的开发者服务平台 —— DevStore

mysql 中float和decimal除了精度上的区别,还有其他吗?比如效率?
 
很拽很拽
发帖于 1年前
4回/919阅

按票数排序  显示最新答案  共有4个答案 (最后回答: 1年前)

0
  • Lesus

    存储上区分:

    FLOAT(p)

    如果0 <= p <= 244个字节如果25 <= p <= 538个字节

    FLOAT

    4个字节

    DECIMAL(NUMERIC)的存储需求与具体版本有关:

    使用二进制格式将9个十进制(基于10)数压缩为4个字节来表示DECIMAL列值。每个值的整数和分数部分的存储分别确定。每个9位数的倍数需要4个字节,并且“剩余的”位需要4个字节的一部分。

    精度上区分:

    decimal是严格数值数据类型, float是近似数值数据类型。

     float(M,D), eg: float(5, 2) 一共5位,2位精度;  数字433.22 可能存入的结果不是433.22。不要奢想它能如你所愿。

    decimal(M, D), eg: decimal(5,2), 一共5位,小数点后2位,数字433.22存入到数据库中的结果也是433.22. 

    效率上区分:

    float是最基本的数据类型,它的运算可以直接在cpu上运行,而decimal是mysql的数据类型,它的运算依赖于mysql。所以float效率更高。

    --- 共有 1 条评论 ---
来自 http://www.oschina.net/question/1042324_114387
普通分类: