Julia - 分数

时间:2023-03-10 03:19:49
Julia - 分数

在 Julia 中,使用“//”运算符构造分数

julia> 1 // 2
1//2 julia> - 1 // 2
-1//2

分数会自动进行约分

julia> 2 // 4
1//2

负号都是显示在分子部分

julia> - 1 // 2
-1//2 julia> 1 // -2
-1//2

把分数转换为浮点数

julia> float(1 // 2)
0.5

对于任意整数 a,b,a 和 b 不等于 0

julia> isequal(float(1//2),1/2)
true

可以构造结果为 Inf 的分数,但不能构造结果为 NaN 的分数

julia> 1 // 0
1//0 julia> typeof(ans)
Rational{Int64} julia> -1 // 0
-1//0 julia> typeof(ans)
Rational{Int64} julia> 0 // 0 # 结果为 NaN
ERROR: ArgumentError: invalid rational: zero(Int64)//zero(Int64)
Stacktrace:
[1] Type at .\rational.jl:13 [inlined]
[2] Type at .\rational.jl:18 [inlined]
[3] //(::Int64, ::Int64) at .\rational.jl:41
[4] top-level scope at none:0

num() 函数获取约分后的分子的值

julia> num(1 // 2)
1 julia> num(2 // 4)
1

den() 函数获取约分后的分母的值

julia> den(1 // 2)
2 julia> den(2 // 4)
2

新版本中用 numerator() 函数和 denominator() 函数

julia> numerator(1//2)
1 julia> denominator(1//2)
2