代码之家  ›  专栏  ›  技术社区  ›  Tim unnamed eng

为什么“可以四舍五入”从int到float,而“可以保留”从int到double?

  •  1
  • Tim unnamed eng  · 技术社区  · 4 年前

    计算机系统:程序员的观点是:

    在int、float和double格式之间转换值时 程序根据需要更改数值和位表示

    • 从int到float,数字不能超过,但是 可能是四舍五入
    • 从int或float到double,精确的数值 可以保存 可表示的值),以及更高的精度(即数字 重要的位)。

    为什么“可以四舍五入”从int到float,而“可以保留”从int到double?

    这两种情况应该是一样的吗?(我猜两个都没有舍入?)

    0 回复  |  直到 4 年前
        1
  •  2
  •   chux    4 年前

    这两种情况应该是一样的吗?

    不,典型的 float 确切地 代表 全部的 整数值最多只能达到2左右 24 虽然 double 最多可以这样做2次 53 .

    int 是32位之类的 内景 2中的值 24 到2 31 浮动


    为了扩展这个想法,大 long long 值在转换为时可以舍入 浮动 双重的


    从另一个角度看32位 内景 和32位 浮动 . 每个都可以代表 2 32 不同的价值观。作为 浮动 内景 值不能精确表示为 . Pigeonhole principle