📅  最后修改于: 2023-12-03 14:47:47.773000             🧑  作者: Mango
Swift是一种现代化、快速的编程语言,它提供了多种类型的数字类型,包括整数和浮点数。在本文中,我们将探讨Swift中整数和浮点数的不同类型、范围、操作和转换。
在Swift中,有多种整数类型可供选择。所有整数类型都是有符号的(以“+”或“-”为前缀)或无符号的(没有前缀)。以下是Swift中的整数类型:
| 类型 | 位数 | 值范围 | | :------ | :---: | :---------------------------------------------------------- | | Int8 | 8 | -128 到 127 | | UInt8 | 8 | 0 到 255 | | Int16 | 16 | -32768 到 32767 | | UInt16 | 16 | 0 到 65535 | | Int32 | 32 | -2147483648 到 2147483647 | | UInt32 | 32 | 0 到 4294967295 | | Int64 | 64 | -9223372036854775808 到 9223372036854775807 | | UInt64 | 64 | 0 到 18446744073709551615 | | Int | 32/64 | 与平台有关,通常为32位或64位。在32位平台上,范围为-2147483648到2147483647;在64位平台上,范围为-9223372036854775808到9223372036854775807 | | UInt | 32/64 | 与平台有关,通常为32位或64位。在32位平台上,范围为0到4294967295;在64位平台上,范围为0到18446744073709551615 |
在Swift中,您可以使用标准运算符对整数执行算术运算,例如“+”(加法)、“-”(减法)、“*”(乘法)、“/”(除法)和“%”(取模)。让我们看看一些例子:
let a: Int = 10
let b: Int = 3
let sum = a + b // 13
let difference = a - b // 7
let product = a * b // 30
let quotient = a / b // 3
let remainder = a % b // 1
在Swift中,浮点数是包含分数或小数的数字。Swift中有两种浮点数类型:Float和Double。Float精度为6个小数位,Double精度为15个小数位。以下是Swift中的浮点数类型:
| 类型 | 位数 | 精度 | 值范围 | | :----- | :--: | :----- | :----------------------------------- | | Float | 32 | 6位 | 1.2E-38到3.4E+38 | | Double | 64 | 15位 | 2.3E-308到1.7E+308 |
请注意,尽管Float可以表示一个很大的数字范围,但它的精度是有限的。
在Swift中,您可以使用标准算术运算符对浮点数执行算术操作,例如“+”(加法)、“-”(减法)、“*”(乘法)和“/”(除法)。让我们看看一些例子:
let c: Float = 3.14159
let d: Double = 2.71828
let sum = c + d // 5.85987
let difference = d - c // -0.4233101
let product = c * d // 8.53974
let quotient = d / c // 0.866752
在Swift中,您可以使用类型转换来在不同的数字类型之间进行转换。类型转换分为两种类型:隐式转换和显式转换。当您将一个数字类型分配给另一个数字类型时,如果两种类型是兼容的,则编译器将自动进行隐式转换。然而,如果您尝试将一个大的数字类型分配给一个较小的数字类型(例如Int32分配给Int8),则编译器将引发错误。 在这种情况下,您需要使用显式转换来使它们兼容。以下是两种转换的示例:
let e: Int16 = 200
let f: Int8 = 50
let sum1 = e + Int16(f) // 250(显式转换)
let g = 3.14159
let h = Int(g) // 3(隐式转换)
在上面的例子中,我们使用显式转换将Int8转换为Int16,并将Double转换为Int。请注意,当您将Double转换为Int时,它会截断小数部分。
Swift中的整数和浮点数提供了多种类型和操作,使开发人员能够执行各种算术和计算任务。在编写Swift代码时,请记住数字类型的范围和精度,以及类型转换的规则,以确保您的代码的正确行为。