Julia语言程序设计
上QQ阅读APP看书,第一时间看更新

3.3.1 基本定义

浮点型并不像整型那样区分出有符号或无符号,而是按照表达精度分成了三类,同样与内部的位数相关,具体如表3-2所示。

表3-2 浮点数类型

如果要在Julia中以字面值输入浮点数,可以有多种形式,如下所示:


julia> 1.0                      # 正数
1.0 

julia> 1.                       # 省略了小数部分的0,但保留了小数点,用以明确是浮点数
1.0 

julia> .5                       # 省略整数部分的0,保留小数点
0.5 

julia> -1.23                    # 负数
-1.23 

julia> 1e10                     # 科学计数法
1.0e10 

julia> 2.5e-4 
0.00025 

同样,可以使用bitstring()函数查看浮点数内部结构的二进制序列,例如:


julia> bitstring(1.0)
"0011111111110000000000000000000000000000000000000000000000000000"

julia> bitstring(-1.23)
"1011111111110011101011100001010001111010111000010100011110101110"

julia> bitstring(2.5e-4)
"0011111100110000011000100100110111010010111100011010100111111100"

可见,浮点数的表达与整数有很大的不同。

默认情况下,64位系统会自动选择Float64类型。若要使用其他浮点类型,则需要显式地指明,代码如下:


julia> 0.5f0                                            # 字面值加上f0标识,会创建Float32类型
0.5f0

julia> typeof(ans)
Float32

julia> 2.5f-4                                           # 计数法使用f代替e
0.00025f0

julia> typeof(ans)
Float32

julia> Float32(0.5)               # 显式地进行类型限定
0.5f0

半精度类型Float16一般不太常用,只用于特定情况。即使将某个数值限定为Float16类型,参与计算时也会由Julia处理为Float32类型。