Jul*_*en 0 precision biginteger julia
朱莉娅如何计算大数字?
例如,这可以按预期工作:
julia> 10^18
1000000000000000000
Run Code Online (Sandbox Code Playgroud)
但是对于更大的数字,整数存在问题:
julia> 10^19
-8446744073709551616
julia> 10^20
7766279631452241920
Run Code Online (Sandbox Code Playgroud)
但是如果使用十进制数则它可以工作:
julia> 10.0^20
1.0e20
Run Code Online (Sandbox Code Playgroud)
你知道为什么吗?
请查看此文档页面: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
Run Code Online (Sandbox Code Playgroud)