个性化定制Julia(即语言)集合。

4

我有一个应用程序,其中对于我来说Set语义将非常有用,但我正在处理浮点数。我希望有一个包含标准的集合,该标准不是精确相等 - 也就是说,如果我的Set已经包含0.5,则如果尝试添加0.50000000000000000018,则忽略它。是否存在现有机制可以实现这一点?

1个回答

4
只要您不需要在集合中保持精度,可以使用Set{Float16}或Set{Float32}:
julia> set = Set{Float16}()
Set{Float16}()

julia> push!(set, Float16(2.3))
Set{Float16} with 1 element:
  Float16(2.3)

julia> push!(set, Float16(2.300000001))
Set{Float16} with 1 element:
  Float16(2.3)

就此而言,在我丢弃了最不重要的数字后,我可以将该值转换回Float64 - 出于各种原因,让数据继续保持64位对我来说很方便。 - user888379

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接