Swift学习笔记_数据类型_浮点类型
2016-08-14 23:02
316 查看
浮点类型
是有小数部分的数字。表示的范围比整数类型更大,可存储比Int类型更大或更小的数字。
提供了3种表示形式:
(1)Float 表示32位浮点数,可精确到小数点后6位。
(2)Double 表示64位浮点数,可精确到小数点后15位。
(3)Float80 表示80位浮点数,可精确到小数点后17位。
※Float32和Float64分别是Float和Double的类型别名
选用何种浮点类型,取决于所存储的浮点数的范围,通常情况下,推荐使用Double类型。
如果声明变量或常量时,不指定数据类型,系统默认将浮点类型的变量或常量推断为Double类型。
浮点类型的直接数有两种表示形式:
(1)10进制 没有前缀
(2)16进制 前缀是0x
小数点两边必须有至少一个10进制数字或是16进制数字。
还有一个可选的指数(exponent),在10进制浮点数中通过大写或小写的e来指定,如:men = m乘以10的n次方
在16进制浮点数中通过大写或小写的p来指定,如:0xmpn = m对应的10进制数乘以2的n次方
和整数类型一样,可以给浮点类型的直接数添加若干个0或_,以提供可读性。
计算机在存储浮点数的时候是不准确,对于浮点数的比较需要格外小心。
比较可靠的做法是:比较其差的绝对值是否小于一个非常小的数值。
如果两个不同浮点类型的变量或常量进行运算时,必须进行显式的类型转换,否则会产生编译错误。
如果整数类型和浮点类型的变量或常量进行运算时,必须进行显式的类型转换,否则会产生编译错误。
当把浮点类型转换成整数类型时,在该浮点数类型值不超出该整数类型所表示数值范围的前提下,
浮点类型的值的小数部分会被截掉。
可以把整数类型的直接数直接赋值给浮点类型的变量或常量,
也可把整数类型的直接数和浮点类型的直接数进行运算,系统都会进行隐式类型转换。
但是把浮点类型的直接数赋值给整数类型的变量或常量,会产生编译错误。
是有小数部分的数字。表示的范围比整数类型更大,可存储比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
相关文章推荐
- Swift学习笔记之基本数据类型-整形,浮点,布尔
- swift学习笔记之数据类型
- 【Swift】学习笔记(一)——初识 基础数据类型,代码风格,元组,断言
- swift学习笔记之基本数据类型-控制流
- Swift学习笔记之基本数据类型-数组与字典
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
- Swift学习笔记_数据类型_整数类型
- Python学习笔记(二):基本数据类型及操作(逻辑、字符串、浮点、复数)
- Swift学习笔记(四)——高级数据类型之元组详解
- swift学习笔记(一)(常量、变量、数据类型、字符串的拼接、数组、字典)
- Swift 学习笔记第一天-变量常量,及数据类型
- Swift学习笔记(七)——高级数据类型之Optionals
- Swift学习笔记一:简介和数据类型
- [Swift]:快速学习笔记2 数据类型
- swift学习笔记(1)--基本数据类型
- Swift学习笔记_数据类型_布尔类型
- swift学习笔记(一)基本数据类型(上)
- 基本数据类型——swift学习笔记(2)
- Swift学习笔记之基本数据类型-基本运算符
- Swift学习笔记之基本数据类型-元组