- Julia機(jī)器學(xué)習(xí)核心編程:人人可用的高性能科學(xué)計算
- 朱紅慶
- 681字
- 2020-07-28 11:01:34
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ù)類型表

- LabVIEW程序設(shè)計基礎(chǔ)與應(yīng)用
- 零起步玩轉(zhuǎn)掌控板與Mind+
- 控糖控脂健康餐
- Vue.js入門與商城開發(fā)實戰(zhàn)
- Microsoft System Center Orchestrator 2012 R2 Essentials
- RabbitMQ Essentials
- 動手學(xué)數(shù)據(jù)結(jié)構(gòu)與算法
- 實戰(zhàn)Java高并發(fā)程序設(shè)計(第2版)
- Windows Phone 8 Game Development
- Backbone.js Testing
- 計算語言學(xué)導(dǎo)論
- 人人都能開發(fā)RPA機(jī)器人:UiPath從入門到實戰(zhàn)
- 從零開始學(xué)UI:概念解析、實戰(zhàn)提高、突破規(guī)則
- Deep Learning for Natural Language Processing
- TypeScript全棧開發(fā)