Julia 我想找出与朱莉娅的0对应的数字-我指的是最接近的0
为什么朱莉娅会这样 我的意见是Julia 我想找出与朱莉娅的0对应的数字-我指的是最接近的0,julia,underflow,Julia,Underflow,为什么朱莉娅会这样 我的意见是 A = [] for i = 17:21 t = 1/(10^(i)) push!(A, t) end return(A) 结果是: 5-element Array{Any,1}: 1.0e-17 1.0e-18 -1.1838881245526248e-19 1.2876178137472069e-19 2.5800991659088344e-19 我注意到 A[3]>0 false 我想找到与Julia的0对应的数
A = []
for i = 17:21
t = 1/(10^(i))
push!(A, t)
end
return(A)
结果是:
5-element Array{Any,1}:
1.0e-17
1.0e-18
-1.1838881245526248e-19
1.2876178137472069e-19
2.5800991659088344e-19
我注意到
A[3]>0
false
我想找到与Julia的0对应的数字,但我找到了这个,不明白。出现此问题的原因是当您有
I=19
时,请注意:
julia> 10^19
-8446744073709551616
它与浮点数无关,但由Int64
溢出引起
下面是将按照您的预期工作的代码。使用10.0
而不是10
,因为10.0
是一个Float64
值:
julia> A=[]
Any[]
julia> for i=17:21
t=1/(10.0^(i))
push!(A,t)
end
julia> A
5-element Array{Any,1}:
1.0e-17
1.0e-18
1.0e-19
1.0e-20
1.0e-21
或者使用高精度的BigInt
类型,该类型是使用big(10)
你可以在这里找到更多关于这方面的讨论
例如,请注意(如果不知道溢出情况,您可能会感到惊讶):
最后,要找到最小的正Float64
number,请使用:
julia> nextfloat(0.0)
5.0e-324
或
julia> x = typemin(Int64)
-9223372036854775808
julia> x^2
0
julia> y = typemax(Int64)
9223372036854775807
julia> y^2
1
julia> nextfloat(0.0)
5.0e-324
julia> eps(0.0)
5.0e-324