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觀察不同浮點類型的精度。
- SPSS數(shù)據(jù)挖掘與案例分析應用實踐
- Rust編程:入門、實戰(zhàn)與進階
- Serverless computing in Azure with .NET
- Mastering AWS Security
- AMP:Building Accelerated Mobile Pages
- 你好!Java
- KnockoutJS Blueprints
- 軟件定義存儲:原理、實踐與生態(tài)
- Selenium WebDriver自動化測試完全指南
- Hadoop MapReduce v2 Cookbook(Second Edition)
- C語言程序設計:現(xiàn)代方法(第2版)
- Ext JS源碼分析與開發(fā)實例寶典
- C#灰帽子:設計安全測試工具
- Mastering Software Testing with JUnit 5
- Mobile Prototyping with Axure 7