let x4: Float = 3
//:3此时被认为是隐藏了小数点的float,逻辑上没有问题
//:let y4: Int = 3.0
//: 此时程序报错 cannot convert value of type "Double" to specified type Int TR机制发挥作用,3.0和y4: Int逻辑上是矛盾的
let integer = 3
let fraction = 0.1415926
//:此时integer的类型是Int,而fraction的类型是Double
//: let pi = Float(integer) + fraction 严格的类型控制,Float and Double cannot be applied to operands of type "Float" and "Double"
let pi = Double(integer) + fraction
let red:CGFloat = 0
let green:CGFloat = 0
let blue:CGFloat = 0
UIColor(red: red, green: green, blue:blue, alpha:0.8)
//:加色显示,CGFloat专门用于用户界面设计
截图
0赞 · 0采集
慕雪3425745
2016-08-06
//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
//:浮点数和类型转化
let imfloat: Float = 3.1215926
let imDouble: Double = 3.1415926
//: Double的精度比Float高得多
let x = 3.1415926
//: 常量的精度如果过大,TR机制将自动标示为double
var a = 1.25e10
var b = 1.5e-8
var bigfloat = 1_0000_0000.0000_001
//:大数值的优化在浮点数里可以迁移到小数点之后的位数当中
//:类型转换
let x2: UInt16 = 100
let y2: UInt8 = 20
//:price * sell:UInt8 swift是强类型语言,不仅意味着语言系统内部使用确定的机制根据赋值的属性标示变量的类型,还意味着开发者必须非常明确自己使用的类型,必须显式地进行类型转换,以减少开发当中因为隐式类型转换而出现难以诊断的bug,以确保程序的安全性!
let m = UInt8(x2) + y2
//:let m = UInt8 (x2) * y2 ;这里会报错,m是UInt8类型,不溢出的上限是256,而此时m的运算值已经达到2000
let n = x2 + UInt16(y2)
let x3: Double = 0.33
let y3: Float = 3.00
let m3 = Float(x3) + y3
let n3 = x3 + Double(y3)
//:float 和 double的类型转换也是如此
截图
0赞 · 0采集
NLTwelve
2016-07-30
不同类型的变量之间进行运算,需要进行显性的运行转换
截图
0赞 · 0采集
慕粉1468913016
2016-07-22
试一下
0赞 · 0采集
Moocwong
2016-07-07
调用bicolor必须用cgfloat
截图
1赞 · 0采集
牧语Q
2016-06-28
哪怕是UInt16 + UInt8,也会报错。 因为很多错误就在于数据类型隐式转换而导致的,所以苹果要求不同数据类型进行运算时,必须进行显式转换。 这样就很明确数据之间的类型。
let m = x+UInt16(y)
let n = UInt8(8)+y
CGFloat是苹果专门为游戏开发设计的类型。比如 UIColor.
1赞 · 0采集
牧语Q
2016-06-28
Float 小数点后6位<br>
若没有指明类型,则会自动判断。
有科学计数法
var a = 1.25e10
var b =1.25e-10
var c = 1_000_000.000_000_1 //也可以阶段