中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Swift學習筆記_數據類型_浮點類型

發布時間:2020-03-01 13:14:27 來源:網絡 閱讀:956 作者:juniqian 欄目:移動開發

浮點類型

是有小數部分的數字。表示的范圍比整數類型更大,可存儲比Int類型更大或更小的數字。

提供了3種表示形式:

(1)Float 表示32位浮點數,可精確到小數點后6位。

(2)Double 表示64位浮點數,可精確到小數點后15位。

(3)Float80 表示80位浮點數,可精確到小數點后17位。

※Float32和Float64分別是Float和Double的類型別名

var floatv:Float = 0.12345678912345  //0.1234568
var floatv2:Float = 123.123456789 // 123.1235
var doublev:Double = 0.1234567890123456789123 //0.1234567890123457
var doublev2:Double = 1234.1234567890456789 //1234.123456789046
var float80v:Float80 = 0.12345678901234567891234 //0.123456789012345679
var float80v2:Float80 = 1234.1234567890456789 //1234.12345678904568

float80v = 0.123456789123456789123456789678 //0.123456789123456789
float80v = 3.123456789123456789123456  //3.12345678912345679
float80v = 3.1234567890123456789123456  //3.12345678901234568

var float32v:Float32 = 32.14159  //Float typealias
var float64v:Float64 = 3.141591242342342343 //Double typealias


選用何種浮點類型,取決于所存儲的浮點數的范圍,通常情況下,推薦使用Double類型。

如果聲明變量或常量時,不指定數據類型,系統默認將浮點類型的變量或常量推斷為Double類型。

var tmpva = 3.14159 //Double type


浮點類型的直接數有兩種表示形式:

(1)10進制 沒有前綴

(2)16進制 前綴是0x


小數點兩邊必須有至少一個10進制數字或是16進制數字。

還有一個可選的指數(exponent),在10進制浮點數中通過大寫或小寫的e來指定,如:men = m乘以10的n次方

在16進制浮點數中通過大寫或小寫的p來指定,如:0xmpn = m對應的10進制數乘以2的n次方

var tmpv1 = 3.14159e2 //314.159
var tmpv2 = 3.14159E-4 //0.000314159
var tmpv3 = 0xC.12p3 //96.5625
var tmpv4 = 0x0.12P3 //0.5625


和整數類型一樣,可以給浮點類型的直接數添加若干個0或_,以提供可讀性。


計算機在存儲浮點數的時候是不準確,對于浮點數的比較需要格外小心。

比較可靠的做法是:比較其差的絕對值是否小于一個非常小的數值。



如果兩個不同浮點類型的變量或常量進行運算時,必須進行顯式的類型轉換,否則會產生編譯錯誤。

var fv1:Float = 3.14159
var dv1:Double = 3.14159

//fv1 = dv1 //cannot assign value of type Double to type Float
//dv1 = fv1 //cannot assign value of type Float to type Double
fv1 = Float(dv1)
dv1 = Double(fv1)

// error binary operator + cannot be applied to operands of type Float and Double
//fv1 + dv1
fv1 + Float(dv1)
Double(fv1) + dv1


如果整數類型和浮點類型的變量或常量進行運算時,必須進行顯式的類型轉換,否則會產生編譯錯誤。

當把浮點類型轉換成整數類型時,在該浮點數類型值不超出該整數類型所表示數值范圍的前提下,

浮點類型的值的小數部分會被截掉。

var intv:Int = 10
var dblv:Double = 3.14159

//intv = dblv  //error cannot assign value of type Double to type Int
intv = Int(dblv) //3
//dblv = intv //erro cannot assign value of type Int to type Double
dblv = 3.14159
dblv = Double(intv)

// error binary operator + cannot be applied to operands of type Int and Double
//intv + dblv 
dblv = 3.14159
intv + Int(dblv) //6
Double(intv) + dblv ///6.14159


可以把整數類型的直接數直接賦值給浮點類型的變量或常量,

也可把整數類型的直接數和浮點類型的直接數進行運算,系統都會進行隱式類型轉換。

但是把浮點類型的直接數賦值給整數類型的變量或常量,會產生編譯錯誤。

dblv = 3
10 / 0.3
3.14159 + 10 //13.14159

//let cintv:Int = 4.14159 //cannot convert value of type Double to specified type Int
//var tmpint:Int = 3.14159


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻江县| 香港| 鄂托克旗| 濮阳县| 南昌县| 阳原县| 城固县| 泰安市| 夹江县| 海城市| 如皋市| 大石桥市| 青岛市| 乌拉特前旗| 铁岭市| 滕州市| 临颍县| 错那县| 西乌珠穆沁旗| 巴彦淖尔市| 庆阳市| 桓台县| 托里县| 宝山区| 子洲县| 大厂| 阳原县| 定安县| 婺源县| 邻水| 民县| 微博| 新田县| 保定市| 昆山市| 安仁县| 贡山| 英德市| 乐山市| 通州市| 盐边县|