ジュリアで小数点以下を切り捨てて整数に変換する方法
概要
trunc
関数を使うには、第一引数にInt
を入れるだけだ。
コード
julia> @time for t in 1:10^8
Int64(ceil(t/1000))
end
0.189653 seconds
julia> @time for t in 1:10^8
trunc(Int64, ceil(t/1000))
end
0.128472 seconds
二つのループは全く同じ機能をするけど、1.5倍ほどの速度差がある。上はceil
で小数点以下を切り捨ててInt64
に型キャストしたんだけど、下はtrunc
関数の内蔵機能を使ってネイティブに整数を返すから、より速いんだ。
他の言語を使ってた人には、上のループみたいなストレートな命令が自然に感じるだろうけど、Juliaにはデータ型を第一引数に入れて結果を返すような内蔵関数が多いから、下のループみたいな使い方の方が慣れると思うよ。
環境
- OS: Windows
- julia: v1.5.0