swift 4.x 浮點(diǎn)類型

浮點(diǎn)類型有兩種表示方式:
(1)Float:表示32位的浮點(diǎn)類型赖钞,可以精確到小數(shù)點(diǎn)后6位亩歹。
(2)Double:表示64位的浮點(diǎn)類型秋泄,可以精確到小數(shù)點(diǎn)后15位晦溪。

let f: Float = 0.123456789
let d: Double = 0.1234567890123456789

具體選用哪種浮點(diǎn)類型,取決于所存儲的浮點(diǎn)數(shù)的范圍。通常情況下萍诱,推薦使用Double悬嗓。
如果聲明浮點(diǎn)類型的變量或常量時(shí)不指定具體的數(shù)據(jù)類型,系統(tǒng)默認(rèn)將該變量或常量的數(shù)據(jù)類型推斷為Double砂沛。

let fp = 0.12345
// let fp: Double = 0.12345

浮點(diǎn)類型的直接數(shù)有兩種指數(shù)表示形式:
(1)10進(jìn)制的指數(shù)表示形式
以e作為底數(shù)烫扼,例如:men = m乘以10的n次方
(2)16進(jìn)制的指數(shù)表示形式
以p作為底數(shù)曙求,例如:0xmpn = m對應(yīng)的十進(jìn)制數(shù)乘以2的n次方

let decimalDouble = 0.380859375

// 380.859375乘以10的-3次方
let exponentDecimalDouble = 380.859375e-3

// (12 + 3 / 16)乘以2的-5次方
let exponentHexadecimalDouble = 0xC.3p-5

/*
 可以給浮點(diǎn)類型的直接數(shù)添加若干個(gè)0或_碍庵,以提高其可讀性。
 */
let readableDouble = 001_023_456.007_018_090

/*
 計(jì)算機(jī)存儲浮點(diǎn)數(shù)時(shí)是不準(zhǔn)確的悟狱,因此静浴,對于浮點(diǎn)數(shù)的比較需要格外小心。
 */
let db = 1.1

// 1.2很可能是:1.19999999999999
db + 0.1 == 1.2

/*
 比較兩個(gè)浮點(diǎn)數(shù)是否相等時(shí)挤渐,比較可靠的做法是:比較其差的絕對值是否小于一個(gè)非常小的數(shù)值苹享。
 */
abs(db + 0.1 - 1.2) < 0.00000000000001

如果把兩個(gè)不同浮點(diǎn)類型的變量或常量進(jìn)行運(yùn)算(包括賦值運(yùn)算、算術(shù)運(yùn)算和比較運(yùn)算)浴麻,必須顯式地將其轉(zhuǎn)換為相同的浮點(diǎn)類型得问,否則會編譯出錯(cuò)。

var f: Float = 18.0
var d: Double = 23.0

// 把兩個(gè)不同浮點(diǎn)類型的變量進(jìn)行賦值運(yùn)算
// f = d
// d = f

// 必須顯式地將其轉(zhuǎn)換為相同的浮點(diǎn)類型
d = Double(f)
f = Float(d)

// 把兩個(gè)不同浮點(diǎn)類型的變量進(jìn)行算術(shù)運(yùn)算
// f + d

// 必須顯式地將其轉(zhuǎn)換為相同的浮點(diǎn)類型
Double(f) + d
f + Float(d)

// 把兩個(gè)不同浮點(diǎn)類型的變量進(jìn)行比較運(yùn)算
// f > d

// 必須顯式地將其轉(zhuǎn)換為相同的浮點(diǎn)類型
Double(f) > d
f > Float(d)

整數(shù)類型和浮點(diǎn)類型運(yùn)算時(shí)的相互轉(zhuǎn)換

如果把整數(shù)類型和浮點(diǎn)類型的變量或常量進(jìn)行運(yùn)算(包括賦值運(yùn)算软免、算術(shù)運(yùn)算和比較運(yùn)算)宫纬,必須顯式地將其轉(zhuǎn)換為相同的類型,否則會編譯出錯(cuò)膏萧。
當(dāng)把浮點(diǎn)類型轉(zhuǎn)換成整數(shù)類型時(shí)漓骚,在該浮點(diǎn)類型的值不超出該整數(shù)類型所表示數(shù)值范圍的前提下,浮點(diǎn)類型的值的小數(shù)部分會被截掉榛泛。

var i8: Int8 = 23
var d: Double = 7.98

// 把整數(shù)類型和浮點(diǎn)類型的變量進(jìn)行賦值運(yùn)算
// d = i8
// i8 = d

// 必須顯式地將其轉(zhuǎn)換為相同的類型
d = Double(i8)
d = 7.98
i8 = Int8(d)

// 把整數(shù)類型和浮點(diǎn)類型的變量進(jìn)行算術(shù)運(yùn)算
// i8 + d

// 必須顯式地將其轉(zhuǎn)換為相同的類型
d + Double(i8)
i8 + Int8(d)

// 把整數(shù)類型和浮點(diǎn)類型的變量進(jìn)行比較運(yùn)算
// i8 > d

// 必須顯式地將其轉(zhuǎn)換為相同的類型
d > Double(i8)
i8 > Int8(d)

/*
 在進(jìn)行顯式類型轉(zhuǎn)換時(shí)蝌蹂,如果被轉(zhuǎn)換的變量或常量的值超出了轉(zhuǎn)換后的數(shù)據(jù)類型所能表示的數(shù)值范圍,程序是可以編譯通過的曹锨,但是運(yùn)行時(shí)會出錯(cuò)孤个。
 */
d = 798.0

// 被轉(zhuǎn)換的變量的值798.0超出了轉(zhuǎn)換后的數(shù)據(jù)類型Int8所能表示的數(shù)值范圍
// Int8(d)

/*
 直接數(shù)沒有明確的數(shù)據(jù)類型,直接數(shù)的數(shù)據(jù)類型在編譯時(shí)才會被推斷出來沛简。
 可以把整數(shù)類型的直接數(shù)直接賦值給浮點(diǎn)類型的變量或常量硼身,也可以把整數(shù)類型的直接數(shù)和浮點(diǎn)類型的直接數(shù)直接運(yùn)算。
 */
let fp: Double = 10

10 / 3.0
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末覆享,一起剝皮案震驚了整個(gè)濱河市佳遂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撒顿,老刑警劉巖丑罪,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡吩屹,警方通過查閱死者的電腦和手機(jī)跪另,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煤搜,“玉大人免绿,你說我怎么就攤上這事〔炼埽” “怎么了嘲驾?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迹卢。 經(jīng)常有香客問我辽故,道長,這世上最難降的妖魔是什么腐碱? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任誊垢,我火速辦了婚禮,結(jié)果婚禮上症见,老公的妹妹穿的比我還像新娘喂走。我一直安慰自己,他們只是感情好谋作,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布芋肠。 她就那樣靜靜地躺著,像睡著了一般瓷们。 火紅的嫁衣襯著肌膚如雪业栅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天谬晕,我揣著相機(jī)與錄音碘裕,去河邊找鬼。 笑死攒钳,一個(gè)胖子當(dāng)著我的面吹牛帮孔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播不撑,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼文兢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了焕檬?” 一聲冷哼從身側(cè)響起姆坚,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎实愚,沒想到半個(gè)月后兼呵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兔辅,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年击喂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了维苔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡懂昂,死狀恐怖介时,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凌彬,我是刑警寧澤沸柔,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站饿序,受9級特大地震影響勉失,放射性物質(zhì)發(fā)生泄漏羹蚣。R本人自食惡果不足惜原探,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望顽素。 院中可真熱鬧咽弦,春花似錦、人聲如沸胁出。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽全蝶。三九已至闹蒜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抑淫,已是汗流浹背绷落。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留始苇,地道東北人砌烁。 一個(gè)月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像催式,于是被迫代替她去往敵國和親函喉。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容