當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Julia round方法用法及代碼示例


用法:

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

將數字四舍五入 x

如果沒有關鍵字參數,x 將被四舍五入為整數值,返回類型為 T 的值,如果沒有提供 T,則返回與 x 相同類型的值。如果該值不能由 T 表示,則將拋出 InexactError ,類似於 convert

如果提供了 digits 關鍵字參數,它將舍入到小數點後的指定位數(如果為負數,則在前),以 base 為基礎。

如果提供了 sigdigits 關鍵字參數,它會舍入到指定的有效位數,以 base 為基礎。

RoundingMode r 控製舍入的方向;默認值為 RoundNearest ,四舍五入到最接近的整數,而平局(小數值為 0.5)四舍五入到最接近的偶數。請注意,如果更改全局舍入模式,round 可能會給出不正確的結果(請參閱 rounding )。

例子

julia> round(1.7)
2.0

julia> round(Int, 1.7)
2

julia> round(1.5)
2.0

julia> round(2.5)
2.0

julia> round(pi; digits=2)
3.14

julia> round(pi; digits=3, base=2)
3.125

julia> round(123.456; sigdigits=2)
120.0

julia> round(357.913; sigdigits=4, base=2)
352.0

注意

對二進製浮點數進行運算時,舍入到以 2 為基數的指定數字可能是不精確的。例如,1.15表示的 Float64 值實際上是less而不是1.15,但將四舍五入為1.2。

例子

julia> x = 1.15
1.15

julia> @sprintf "%.20f" x
"1.14999999999999991118"

julia> x < 115//100
true

julia> round(x, digits=1)
1.2

擴展

要將 round 擴展到新的數字類型,通常定義 Base.round(x::NewType, r::RoundingMode) 就足夠了。

相關用法


注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Base.round — Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。