• Killing_Spark@feddit.de
        link
        fedilink
        arrow-up
        18
        ·
        1 year ago

        Only to 2^54. The amount of integers representable by a long is more. But it can and does represent every int value correctly

        • parlaptie@feddit.de
          link
          fedilink
          arrow-up
          5
          arrow-down
          6
          ·
          1 year ago

          *long long, if we’re gonna be taking about C types. A long is commonly limited to 32 bits.

          • Aux@lemmy.world
            link
            fedilink
            arrow-up
            15
            ·
            1 year ago

            C is irrelevant because this post is about Java and in Java long is 64 bits.

          • voxel@sopuli.xyz
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            1 year ago

            you should never be using these types in c anyway, (u?)int(8/16/32/64)_t are way more sane

      • RoyaltyInTraining@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        A double can represent numbers up to ± 1.79769313486231570x10^308, or roughly 18 with 307 zeroes behind it. You can’t fit that into a long, or even 128 bits. Even though rounding huge doubles is pointless, since only the first dozen digits or so are saved, using any kind of Integer would lead to inconsistencies, and thus potentially bugs.