Julia 非数值和内置常量,基于浮点数的计算中,往往会出现无效的浮点值。这样的事物不是任何浮点数,但我们又需要标记它的存在,这种情况在大规模数据操作中经常会遇到。为了应对这种情况,Julia另外定义了一组特殊的浮点值常量,即“非数值(Not-a-Number)”。
非数值
定义的三种浮点类型(即Float16、Float32及Float64)对应的“非数值”分别是NaN16
、NaN32
及NaN64
(在64位系统中等价于NaN)。
可用isnan()
来检验一个变量或数值是否为“非数值”,例如:
为了叙述方便,后文涉及“非数值”这类特殊浮点值时,均以NaN指代。
内置常量
为了方便,在Julia的Base.MathConstants
模块中定义了常见的数学或物理等方面的系数常量,如表所示。开发者可以不用自己重复定义,直接使用即可。
注意“变量名称”中的希腊字母并不是某种数学表达,而是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
型可以像浮点型那样操作。
酷客网相关文章:
评论前必须登录!
注册