
在 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