代码之家  ›  专栏  ›  技术社区  ›  baash05

什么比双倍还大?

  •  35
  • baash05  · 技术社区  · 17 年前

    有没有一个本机c++变量类型比double“更大”?
    浮点数为7
    double是15(当然取决于编译器)
    还有更大的东西是本土的,甚至是非本土的吗?

    8 回复  |  直到 17 年前
        1
  •  38
  •   C. K. Young    17 年前

    C++有 long double ,但不能保证它比平原更精确 double 在x86平台上,通常 两倍的 是64比特,以及 长双人 是64位或80位(如果我没记错的话,这会给你19位有效数字)。

    你的里程可能会有所不同,特别是如果你没有使用x86。

        2
  •  12
  •   ysth    17 年前

    长双精度通常只使用10个字节,但由于对齐,在一个结构中实际上可能占用12或16个字节(取决于编译器和选项)。

    10字节长的双精度提供64位尾数;当你想在浮点中存储64位整数而不损失精度时,这非常方便。

        3
  •  9
  •   CesarB    17 年前

    您可以使用 GNU MP .它 floating-point functions 具有无限尾数和32位或64位(取决于本机字长)指数。它还附带了一个 C++ wrapper .

        4
  •  3
  •   Dana the Sane    17 年前

    C++中还有一些不同的bigfloat/bigint库,允许任意精度的数学运算。有 this 微软Codeplex上的库,但谷歌会给你找到很多其他库。

        5
  •  3
  •   gilm    17 年前

    C++有很长的double,但它仍然非常有限。很高兴尝试GNU的gmp库。你可以设置任意大的数字,当你使用gmp_add而不是普通的+时,这很有趣,也很老套。我肯定在某个地方有一个C++包装器。

        6
  •  2
  •   Jake    17 年前

    长双,但一般还是15位精度。

        7
  •  2
  •   Arron Brooks    15 年前

    不过,只有一些cpu允许你使用它。..

        8
  •  0
  •   user1356386 user1356386    12 年前