用法一
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。