官术网_书友最值得收藏!

2.3 Julia中的浮點數(shù)

與其他編程語言類似,在Julia中能夠很容易地表示浮點數(shù)。

【范例2-14】浮點數(shù)測試

01  julia> 100.0   #浮點數(shù)
02  100.0
03  julia> 24.    #加一個小數(shù)點
04  24.0
05  julia> .10    #不需要在小數(shù)點之前添加數(shù)字
06  0.1
07  julia> typeof(ans)
08  Float64

通過以上測試,我們可以知道Julia中浮點數(shù)的基本使用方法。

在Julia中有正零和負(fù)零的概念。它們的值是相同的,但其二進(jìn)制表示不同。如下代碼對正零和負(fù)零進(jìn)行了比較。

01  julia> 0.0 == -0.0    #兩種零的比較
02  true
03  julia> bits(0.0)
04  "000000000000000000000000000000000000000000000000000000000
05  0000000"
06  #正零和負(fù)零的首位不同
07  julia> bits(-0.0)
08  "100000000000000000000000000000000000000000000000000000000
09  0000000"

代碼01行比較了0.0和?0.0的值,返回值為true,說明它們的值相等。代碼04行與09行分別給出了它們的二進(jìn)制表示。在Julia中,指數(shù)表示法非常有用,并且使用方便,如下代碼給出了其使用方法。

01  julia> 2.99e8
02  2.99e8
03  julia> 2.99e8>999999
04  true

代碼01行輸入了一個以指數(shù)形式表示的浮點數(shù)2.99e8,它的值為2.99×108。代碼03行將2.99e8與999999進(jìn)行比較,返回的結(jié)果為true。

在前面的范例中使用的一直是Float64。其實如果需要,也可以在64位計算機(jī)上使用Float32。

【范例2-15】使用Float32

01  julia> 2.99f8     #使用f替換e生成Float32
02  2.99f8
03  julia> typeof(ans)   #檢查前面的變量類型是否為Float32
04  Float32
05  julia> 2.99f8==2.99e8  #將它與相同的值進(jìn)行比較
06  true

代碼01行使用f代替e來表示這是一個Float32類型的值。代碼03行使用typeof(ans)來判斷上一個結(jié)果的類型,結(jié)果為Float32。代碼05行將Float32與Float64的相同值進(jìn)行比較,結(jié)果為true。

除此之外,我們還可以通過一個函數(shù)將值從Float64轉(zhuǎn)換為Float32。示例代碼如下:

01  julia> Float32(2.99e8)
02  2.99f8

代碼01行使用了Float32()函數(shù),傳入一個Float64類型的值,得到的結(jié)果是一個Float32類型的值。

在Julia中,十進(jìn)制形式的浮點數(shù)是Float64類型的。示例代碼如下:

01  julia> 0x4.1p1
02  8.125
03  julia> typeof(ans)
04  Float64

代碼01行使用了p計數(shù)法,輸入一個十六進(jìn)制形式的浮點數(shù)。該浮點數(shù)的類型為Float64。

如表2-2所示為浮點數(shù)類型的精度與位數(shù)。

表2-2 浮點數(shù)類型表

主站蜘蛛池模板: 松江区| 张掖市| 库伦旗| 宁乡县| 平江县| 蒙城县| 华容县| 改则县| 盖州市| 临武县| 桦甸市| 来凤县| 禹州市| 天柱县| 浏阳市| 琼结县| 固镇县| 全椒县| 井研县| 临邑县| 施甸县| 云阳县| 宜黄县| 稷山县| 奇台县| 保山市| 陇西县| 连平县| 宝鸡市| 碌曲县| 米脂县| 交口县| 称多县| 青川县| 吴川市| 溧阳市| 岫岩| 繁峙县| 永丰县| 乡城县| 新疆|