Julia 非数值和内置常量

Julia 非数值和内置常量,基于浮点数的计算中,往往会出现无效的浮点值。这样的事物不是任何浮点数,但我们又需要标记它的存在,这种情况在大规模数据操作中经常会遇到。为了应对这种情况,Julia另外定义了一组特殊的浮点值常量,即“非数值(Not-a-Number)”。

非数值

定义的三种浮点类型(即Float16、Float32及Float64)对应的“非数值”分别是NaN16NaN32NaN64(在64位系统中等价于NaN)。

可用isnan()来检验一个变量或数值是否为“非数值”,例如:
Julia 非数值和内置常量

为了叙述方便,后文涉及“非数值”这类特殊浮点值时,均以NaN指代。

内置常量

为了方便,在Julia的Base.MathConstants模块中定义了常见的数学或物理等方面的系数常量,如表所示。开发者可以不用自己重复定义,直接使用即可。

Julia 非数值和内置常量

注意“变量名称”中的希腊字母并不是某种数学表达,而是Julia中的变量名。其中π、ε(不是英文字母E的小写)、γ和φ都是希腊字母,但都是正常UTF-8字符构成的Julia变量,可以像其他变量一样使用,例如:

julia> using Base.MathConstants           # 引入常量模块,后面会介绍

julia> π
π = 3.1415926535897...
julia> φ
φ = 1.6180339887498...

julia> γ
γ = 0.5772156649015...

julia> 2π

julia> γ+1

提示
至于这些字符的输入方式,Julia提供了反斜线转义的方式,并在官方文档中提供了详细的列表。不过转义方式仅适用于REPL环境,不适用于脚本环境。如果在脚本中需要,直接复制粘贴或许更为方便。

不过深究的读者会发现,这些系数常量并不是浮点类型,即:

julia> using Base.MathConstants

julia> typeof(pi)
Irrational{:π}

julia> typeof(φ)
Irrational{:φ}

julia> typeof(γ)
Irrational{:γ}

其中的Irrational便是Julia内部定义的无理数类型。

无理数是不能写作整数比值的无限不循环小数,也是实数的一种。因为我们一般不需要主动创建无理数,而且Irrational型可以像浮点型那样操作。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!