Append 朱莉娅推!或附加!将浮点值转换为整数数组

Append 朱莉娅推!或附加!将浮点值转换为整数数组,append,julia,Append,Julia,我在Julia中有一个整数向量,希望向其推送一个浮点值,或向其附加一个浮点值集合,但当我尝试这样做时,Julia会抛出一个错误: julia> v = [1,2,3] 3-element Array{Int64,1}: 1 2 3 julia> push!(v, 4.5) ERROR: InexactError() in push! at array.jl:432 julia> append!(v, [4.5, 5.2, 3.1]) ERROR: InexactEr

我在Julia中有一个整数向量,希望向其推送一个浮点值,或向其附加一个浮点值集合,但当我尝试这样做时,Julia会抛出一个错误:

julia> v = [1,2,3]
3-element Array{Int64,1}:
 1
 2
 3

julia> push!(v, 4.5)
ERROR: InexactError()
 in push! at array.jl:432

julia> append!(v, [4.5, 5.2, 3.1])
ERROR: InexactError()
 in copy! at abstractarray.jl:344
 in append! at array.jl:447

如何将这些值添加到此数组中?

我认为您无法使用
append,因为在内部,
追加
使用
不安全的拷贝和,如文档所述:

此函数上的不安全前缀表示未对指针dest和src执行任何验证以确保 它们是有效的。不正确的使用可能会损坏或损坏您的程序,方式与C相同

在下面的示例中可以看到这种行为,其中,即使 错误消息
不精确错误
,向量
的内容无效

julia> a=[1,2,3]
3-element Array{Int64,1}:
 1
 2
 3

julia> append!(a,[3.14, 6.66, 1.61])
ERROR: InexactError()
 in copy! at abstractarray.jl:344
 in append! at array.jl:447

julia> a
6-element Array{Int64,1}:
                   1
                   2
                   3
 9223372036854775807
                  18
                  -1
最安全的方法是使用
vcat
进行连接,如下所示:

julia> a=[1,2,3]
3-element Array{Int64,1}:
 1
 2
 3

julia> a=vcat(a, [3.14, 6.66, 1.61])
6-element Array{Float64,1}:
 1.0
 2.0
 3.0
 3.14
 6.66
 1.61
或:

请注意,在连接之后,数组将升级为新类型 (
Array{Float64,1}
Array{Any,1}

更多信息:


您是想将小数点成对地添加到整数中,还是在整数向量的末尾添加小数点?我编辑这个问题的前提是@Gomiero对这个问题的解释是正确的。如果没有,请澄清。
julia> a=[1,2,3]
3-element Array{Int64,1}:
 1
 2
 3

julia> a=[a; [dec(3), "6.66", "test"]]
6-element Array{Any,1}:
 1
 2
 3
  "3"
  "6.66"
  "test"