用法一
eps(::Type{DateTime}) -> Millisecond
eps(::Type{Date}) -> Day
eps(::Type{Time}) -> Nanosecond
eps(::TimeType) -> Period
返回 TimeType
支持的最小單位值。
例子
julia> eps(DateTime)
1 millisecond
julia> eps(Date)
1 day
julia> eps(Time)
1 nanosecond
用法二
eps(::Type{T}) where T<:AbstractFloat
eps()
返回浮點類型T
的machine epsilon
(默認為T = Float64
)。這被定義為 1 與 typeof(one(T))
可表示的下一個最大值之間的差距,相當於 eps(one(T))
。 (由於 eps(T)
是 T
的 relative error
的一個界限,因此它是一個 "dimensionless" 數量,如 one
。)
例子
julia> eps()
2.220446049250313e-16
julia> eps(Float32)
1.1920929f-7
julia> 1.0 + eps()
1.0000000000000002
julia> 1.0 + eps()/2
1.0
用法三
eps(x::AbstractFloat)
返回 x
的 unit in last place
(ulp)。這是 x
處連續可表示浮點值之間的距離。大多數情況下,如果x
兩邊的距離不同,則取兩者中較大的一個,即
eps(x) == max(x-prevfloat(x), nextfloat(x)-x)
此規則的例外是最小和最大的有限值(例如 nextfloat(-Inf)
和 prevfloat(Inf)
用於 Float64
),它們四舍五入到較小的值。
此行為的基本原理是 eps
限製了浮點舍入誤差。在默認的 RoundNearest
舍入模式下,如果 是實數且 是最接近 的浮點數,則
另請參閱: nextfloat
、 issubnormal
、 floatmax
。
例子
julia> eps(1.0)
2.220446049250313e-16
julia> eps(prevfloat(2.0))
2.220446049250313e-16
julia> eps(2.0)
4.440892098500626e-16
julia> x = prevfloat(Inf) # largest finite Float64
1.7976931348623157e308
julia> x + eps(x)/2 # rounds up
Inf
julia> x + prevfloat(eps(x)/2) # rounds down
1.7976931348623157e308
相關用法
- Julia eachindex()用法及代碼示例
- Julia exp2用法及代碼示例
- Julia escape_string用法及代碼示例
- Julia eachline用法及代碼示例
- Julia eachindex用法及代碼示例
- Julia extrema用法及代碼示例
- Julia empty!用法及代碼示例
- Julia exp方法用法及代碼示例
- Julia end用法及代碼示例
- Julia empty用法及代碼示例
- Julia endswith用法及代碼示例
- Julia expm1用法及代碼示例
- Julia eltype用法及代碼示例
- Julia exp10用法及代碼示例
- Julia endswith()用法及代碼示例
- Julia eachmatch用法及代碼示例
- Julia splice!用法及代碼示例
- Julia @cfunction用法及代碼示例
- Julia LibGit2.count用法及代碼示例
- Julia LinearAlgebra.BLAS.dot用法及代碼示例
- Julia break用法及代碼示例
- Julia sizeof()用法及代碼示例
- Julia :<=用法及代碼示例
- Julia zero()用法及代碼示例
- Julia rem用法及代碼示例
注:本文由純淨天空篩選整理自julialang.org大神的英文原創作品 Base.eps — Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。