Juliaで整数を文字列に変換したい。
私が試したとき:
_a = 9500
b = convert(String,a)
_
エラーが発生します:
_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
_
Int64を文字列に変換できない理由がわかりません。
a
をa = UInt64(9500)
などの異なる型として定義しようとしましたが、同様のエラーが発生します。
私はこれが非常に基本的であることを知っており、これを行う正しい方法を探してみました here が、それを理解できませんでした。
あなたは使うべきです:
b = string(a)
または
b = repr(a)
string
関数は、print
を使用して任意の値から文字列を作成するために使用でき、repr
はshowall
を使用します。の場合には Int64
これは同等です。
そして、実際には、これがおそらく変換が機能しない理由です-ベースの選択に応じて整数を文字列に変換する多くの方法があるためです。
[〜#〜]編集[〜#〜]
整数の場合、bin
、dec
、hex
、oct
またはbase
を使用して、過去のバージョンのJuliaで文字列に変換することもできます。
Julia 1.0以降では、整数のbase
キーワード引数を指定した string 関数を使用して、異なるベースで変換を行うことができました。また、数値のリテラルビット表現を提供するbitstring
関数もあります。ここではいくつかの例を示します。
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"