朱莉娅和大数字

时间:2018-05-14 13:32:40

标签: julia precision biginteger

朱莉娅如何计算大数?

例如,这可以按预期工作:

julia> 10^18
1000000000000000000  

但是对于更大的数字,整数存在问题:

julia> 10^19
    -8446744073709551616 

 julia> 10^20
     7766279631452241920 

但如果使用十进制数字则可行:

julia> 10.0^20
1.0e20

你知道为什么吗?

1 个答案:

答案 0 :(得分:6)

请查看此文档页面:https://docs.julialang.org/en/release-0.4/manual/integers-and-floating-point-numbers/

如您所见,Int64的最大长度为: 2 ^ 63 - 1~1.0 * 10 ^ 19 所以你的10 ^ 19大于这个最大值。这就是出现问题的原因。 您可以尝试将10转换为其他类型。

10.0^20有效,因为10.0是一个浮点数,因此它具有更高的最大值。

如果您想要无限制的整数精度,可以使用BigInts

julia> BigInt(10)^100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000