Sto provando a scrivere dati numerici estratti da un database in un Float64[]
. I dati originali sono in formato ::ASCIIString
, in modo da cercare di spingerlo alla matrice dà il seguente errore:Julia: Converte stringa numerica in virgola mobile o interna
julia> push!(a, "1")
ERROR: MethodError: `convert` has no method matching convert(::Type{Float64}, ::ASCIIString)
This may have arisen from a call to the constructor Float64(...),
since type constructors fall back to convert methods.
Closest candidates are:
call{T}(::Type{T}, ::Any)
convert(::Type{Float64}, ::Int8)
convert(::Type{Float64}, ::Int16)
...
in push! at array.jl:432
Tentare di convertire i dati direttamente sorprende tiri lo stesso errore:
julia> convert(Float64, "1")
ERROR: MethodError: `convert` has no method matching convert(::Type{Float64}, ::ASCIIString)
This may have arisen from a call to the constructor Float64(...),
since type constructors fall back to convert methods.
Closest candidates are:
call{T}(::Type{T}, ::Any)
convert(::Type{Float64}, ::Int8)
convert(::Type{Float64}, ::Int16)
...
Dato che ho sapere che i dati sono numerici, c'è un modo per convertirli prima di premere?
p.s. Sto usando la versione 0.4.0
È possibile 'parse (float64, "1")' da una stringa. O nel caso di un vettore 'map (x-> parse (Float64, x), stringvec)' analizzerà l'intero vettore. –
Funziona, grazie! –
BTW considera l'uso di 'tryparse (Float64, x)' invece di 'parse'. Restituisce un Nullable Float che è nullo nel caso in cui la stringa non analizzi bene. –