Arrays 有没有办法将数组转换为整数或浮点?

Arrays 有没有办法将数组转换为整数或浮点?,arrays,parsing,integer,julia,Arrays,Parsing,Integer,Julia,在Julia 1.5.4中,我尝试将一个带有int的数组更改为一个int,如下所示: x = [1,2,3] 在这里,我将尝试或使用代码/命令(这里:example()) 理想输出如下: 123 Int32 我已经尝试用parse()或push来解决这个问题!()或类似的事情。但一切都不顺利。 我找不到类似的问题…这是您需要的吗 julia> x = [1,2,3] 3-element Vector{Int64}: 1 2 3 julia> list2int(x) =

在Julia 1.5.4中,我尝试将一个带有int的数组更改为一个int,如下所示:

x = [1,2,3] 
在这里,我将尝试或使用代码/命令(这里:example())

理想输出如下:

123
Int32
我已经尝试用parse()或push来解决这个问题!()或类似的事情。但一切都不顺利。 我找不到类似的问题…

这是您需要的吗

julia> x = [1,2,3]
3-element Vector{Int64}:
 1
 2
 3

julia> list2int(x) = sum(10 .^ (length(x)-1:-1:0) .* x)
list2int (generic function with 1 method)

julia> list2int(x)
123

您正在查找字符串连接,然后进行分析:

x_new = parse(Int64, string(x...))

您可以在此处找到有关将此功能添加到Julia的问题:

总之,您不想使用字符串,并且应该避免不必要的求幂运算,这两种运算都会非常慢

一个非常简单的解决方案是

evalpoly(10, reverse([1,2,3]))
再多拼一点,你就可以做到

function joindigits(xs)
    val = 0
    for x in xs
        val = 10*val + x
    end
    return val
end

将许多小数字转换为较大数字的另一种有趣方法是合并原始字节:

julia> reinterpret(Int16, [Int8(2),Int8(3)])
1-element reinterpret(Int16, ::Vector{Int8}):
 770
注意770=256*3+2

或对于实际的
Int
s:

julia> reinterpret(Int128, [10,1])
1-element reinterpret(Int128, ::Vector{Int64}):
 18446744073709551626

(请注意,结果正好是
Int128(2)^64+10

在将来的问题中包括您正在使用的语言的标记-它有助于引起那些可以帮助您的人的注意。在这里
x…
将数组解压为单独的参数,
string()
然后将像
string(1,2,3)
一样调用“123”。然后将其解析为
Int64
julia> reinterpret(Int128, [10,1])
1-element reinterpret(Int128, ::Vector{Int64}):
 18446744073709551626