I want to convert an integer to a string in Julia.
When I try:
a = 9500 b = convert(String,a)
I get the error:
ERROR: LoadError: MethodError: Cannot `convert` an object of type Int64 to an object of type String This may have arisen from a call to the constructor String(...), since type constructors fall back to convert methods. in include_from_node1(::String) at ./loading.jl:488 in process_options(::Base.JLOptions) at ./client.jl:265 in _start() at ./client.jl:321 while loading ..., in expression starting on line 16
I am not sure why Int64's cannot be converted to strings.
I have tried defining a
as different types, for example a = UInt64(9500)
, but get similar errors.
I know this is very basic and have tried looking for the correct way to do this here, but couldn't figure it out.
The string input and required base are taken from the user using the readline() method of Julia. The parse() method converts the base into Integer(Int64). Next, the parse() method is used to convert the String into Integer datatype with the given base(here hexadecimal).
Using '*' operator It is used to concatenate different strings and/or characters into a single string. We can concatenate two or more strings in Julia using * operator.
A Char value represents a single character: it is just a 32-bit primitive type with a special literal representation and appropriate arithmetic behaviors, and which can be converted to a numeric value representing a Unicode code point. (
The cmp() is an inbuilt function in julia which is used to return 0 if the both specified strings are having the same length and the character at each index is the same in both strings, return -1 if a is a prefix of b, or if a comes before b in alphabetical order and return 1 if b is a prefix of a, or if b comes before ...
You should use:
b = string(a)
or
b = repr(a)
string
function can be used to create string from any value using print
and repr
uses showall
. In case of Int64
this is equivalent.
And actually this is probably the reason why convert does not work - as there are many ways to convert integer to string depending on the choice of base.
EDIT
For integers you could convert them in the past version of Julia to string also using bin
, dec
, hex
, oct
or base
.
Past Julia 1.0 you can do the conversions in different bases using string function with base
keyword argument for integers. Also you have bitstring
function that gives the literal bit representation of a number. Here are some examples:
julia> string(100) "100" julia> string(100, base=16) "64" julia> string(100, base=2) "1100100" julia> bitstring(100) "0000000000000000000000000000000000000000000000000000000001100100" julia> bitstring(UInt8(100)) "01100100" julia> string(100.0) "100.0" julia> string(100.0, base=2) ERROR: MethodError: no method matching string(::Float64; base=2) Closest candidates are: string(::Any...) at strings/io.jl:156 got unsupported keyword argument "base" string(::String) at strings/substring.jl:146 got unsupported keyword argument "base" string(::SubString{String}) at strings/substring.jl:147 got unsupported keyword argument "base" ... Stacktrace: [1] top-level scope at none:0 julia> bitstring(100.0) "0100000001011001000000000000000000000000000000000000000000000000"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With