数値の丸め,四捨五入とか

Mathematics の Base.round にある通り.

round([T,] x, [r::RoundingMode])
round(x, [r::RoundingMode]; digits::Integer=0, base = 10)
round(x, [r::RoundingMode]; sigdigits::Integer, base = 10)

もっと確認したければ下記のどちらかを実行.

julia> @edit round
help?> round

他の言語にもあるように,ceil・floor・truncもある.それぞれ,値を大・小・0に近い方向に丸める.引数,キーワード引数は round と同じ.

整数への丸め

整数の型名を入力するとその型に変換される.
Float を維持したいときは最初に型の入力をしない.

julia> round(Int64,1234.5678)
 1235
julia> round(1234.5678)
 1235.0
julia> typeof(ans)
 Float64

小数第 n 位,有効桁数 m で丸め

それぞれ digits と sigdigits のキーワード引数で指定.

julia> round(1234.5678, digits=3)
 1234.568
julia> round(1234.5678, sigdigits=3)
 1230.0

最も近い値を求める

丸めとは違うが,

julia> v = [1 5 10 15 30 60];
julia> x = 7.0;

として,x::Float64 を v::Array{Float64,1} の中で最も近い値を求めるときは,

julia> v[findmin(abs.(x.-v))[2]]
 5.0

のようにする.findmin の戻り値はインデックスを表し,型は Int64 か CartesianIndex になる.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2018-10-04 (Thu) 12:18:19 (2191d)