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

3.1.3 認識浮點類型

倉頡浮點類型有3種:Float16(半精度浮點類型)、Float32(單精度浮點類型)和Float64(雙精度浮點類型),分別表示在存儲浮點數(shù)時使用的二進制位數(shù)為16位、32位和64位。這3種浮點類型的精度從高到低依次為:Float64 > Float32 > Float16。

代碼清單3-1 precision_float_type.cj

01   from std import format.*
02   
03   main() {
04       let x: Float16 = 0.7438734374037310774
05       let y: Float32 = 0.7438734374037310774
06       let z: Float64 = 0.7438734374037310774
07   
08       println(x.format(".18"))  // 輸出:0.743652343750000000
09       println(y.format(".18"))  // 輸出:0.743873417377471924
10       println(z.format(".18"))  // 輸出:0.743873437403731130
11   }

在代碼清單3-1中,我們將一個小數(shù)位數(shù)較多的浮點類型字面量分別存入3個不同精度類型的浮點類型變量(Float16類型的x、Float32類型的y和Float64類型的z),然后讀取變量值。在讀取變量值時,為了觀察3個變量的精度,使用了format函數(shù)將輸出精度指定為小數(shù)點后18位。通過示例程序,可以發(fā)現(xiàn)不同浮點類型的精度是不同的:Float16的精度約為小數(shù)點后3位,F(xiàn)loat32的精度約為小數(shù)點后7位,F(xiàn)loat64的精度約為小數(shù)點后15位。

1.浮點類型字面量的形式

一個不帶指數(shù)部分的浮點類型字面量的形式如下:

[整數(shù)部分].小數(shù)部分

以下是一些合法的浮點類型字面量:

1.234  // 同時包含整數(shù)部分和小數(shù)部分
.5     // 只包含小數(shù)部分,不包含整數(shù)部分

另外,浮點類型字面量可以使用科學記數(shù)法表示。在浮點類型的科學記數(shù)法中,指數(shù)部分以“e”或“E”為前綴,底數(shù)為10。對于帶指數(shù)部分的浮點類型字面量,至少要包含整數(shù)部分或小數(shù)部分,如果不包含小數(shù)部分,那么可以省略小數(shù)點。

以下是一些以科學記數(shù)法表示的合法的浮點類型字面量:

2E3     // 表示2×103,即2000.0
.6e2    // 表示0.6×102,即60.0
9.8e-3  // 表示9.8×10-3,即0.0098

提示

浮點類型字面量也可以使用下畫線(_)作為分隔符。

2.浮點類型字面量的后綴

在使用十進制浮點類型字面量時,也可以給字面量后面加上類型后綴。十進制浮點類型與類型后綴的對應關系如表3-3所示。

表3-3 十進制浮點類型與類型后綴的對應關系

圖片表格

以下是一些使用了類型后綴的十進制浮點類型字面量:

99.8f64  // Float64類型的字面量99.8
0.35f16  // Float16類型的字面量0.35
1.21e3f32  // Float32類型的字面量1210.0

練習

分別將同一個小數(shù)位數(shù)較多的浮點類型字面量賦給不同浮點類型的變量,通過函數(shù)format和println觀察不同浮點類型的精度。

主站蜘蛛池模板: 平邑县| 陆良县| 西乡县| 阳原县| 元氏县| 图木舒克市| 横峰县| 东台市| 莲花县| 长岭县| 康马县| 新龙县| 年辖:市辖区| 盘锦市| 泽州县| 和硕县| 泽普县| 珠海市| 宁夏| 久治县| 洛宁县| 关岭| 遂川县| 杭州市| 高要市| 泸水县| 隆化县| 巨野县| 沙雅县| 离岛区| 麟游县| 酉阳| 房产| 宁化县| 邹平县| 龙州县| 收藏| 海盐县| 遵化市| 太原市| 秦皇岛市|