当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。