Swift的内置数字类型为:
字大小(取决于体系结构)的有符号Int和无符号UInt。
固定大小的有符号整数Int8,Int16,Int32,Int64和无符号整数UInt8,UInt16,UInt32,UInt64。
浮点类型Float32 / Float,Float64 / Double和Float80(仅x86)。
数字文字的类型是根据上下文推断的:
let x = 42 // x默认为Int let y = 42.0 // y默认为Double let z: UInt = 42 // z是UInt let w: Float = -1 // w是浮动的 let q = 100 as Int8 // q是Int8
下划线(_)可用于分隔数字文字中的数字。前导零被忽略。
浮点字面量可以使用有效和指数部分(对于十进制;对于十六进制)指定。«significand» e «exponent»0x «significand» p «exponent»
let decimal = 10 // 十 let decimal = -1000 // 负一千 let decimal = -1_000 // 相当于-1000 let decimal = 42_42_42 // 相当于424242 let decimal = 0755 // 相当于755,而不是某些其他语言的493 let decimal = 0123456789 let hexadecimal = 0x10 // 相当于16 let hexadecimal = 0x7FFFFFFF let hexadecimal = 0xBadFace let hexadecimal = 0x0123_4567_89ab_cdef let octal = 0o10 // 相当于8 let octal = 0o755 // 相当于493 let octal = -0o0123_4567 let binary = -0b101010 // 相当于-42 let binary = 0b111_101_101 // 相当于0o755 let binary = 0b1011_1010_1101 // 等效于0xB_A_D
let decimal = 0.0 let decimal = -42.0123456789 let decimal = 1_000.234_567_89 let decimal = 4.567e5 // 相当于4.567×10⁵或456_700.0 let decimal = -2E-4 // 相当于-2×10⁻⁴或-0.0002 let decimal = 1e+0 // 相当于1×10⁰或1.0 let hexadecimal = 0x1p0 // 相当于1×2⁰或1.0 let hexadecimal = 0x1p-2 // 等于1×2⁻²或0.25 let hexadecimal = 0xFEEDp+3 // 相当于65261×2³或522088.0 let hexadecimal = 0x1234.5P4 // 等效于0x12345或74565.0 let hexadecimal = 0x123.45P8 // 等效于0x12345或74565.0 let hexadecimal = 0x12.345P12 // 等效于0x12345或74565.0 let hexadecimal = 0x1.2345P16 // 等效于0x12345或74565.0 let hexadecimal = 0x0.12345P20 // 等效于0x12345或74565.0