回答編集履歴
2
誤記訂正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Float(IEE 32bit floating point number)
|
4
4
|
Double(IEEE 64bit floating point number)
|
5
5
|
|
6
|
-
また静的型付けの言語なので、変数や関数の引数や戻り値の型はコンパイルする時点で確定しており、さらに
|
6
|
+
また静的型付けの言語なので、変数や関数の引数や戻り値の型はコンパイルする時点で確定しており、さらに型が違うもの同士に対するなんらかの適用(演算や変数への代入や実引数の指定など)はもし適切なオーバーロードが定義されてなければエラーになるので、次のようなことが起きます。
|
7
7
|
|
8
8
|
```swift
|
9
9
|
func forFloat(_ v: Float) {}
|
@@ -11,7 +11,7 @@
|
|
11
11
|
forFloat(1.0) // OK (定数は適用しようとしている型に合わせて適当に変換してくれるらしい)
|
12
12
|
|
13
13
|
let v = 1.0 // (型推論規則によってvはDoubleと仮定される?)
|
14
|
-
forFloat(v) // NG (Float型の引数にDoubleは渡せない)
|
14
|
+
forFloat(v) // NG (Float型の引数にDouble型の値は渡せない)
|
15
15
|
```
|
16
16
|
|
17
17
|
さてCGFloatはプロセッサーアーキテクチャーによって実際の型がFloatまたはDoubleのどちらかになる型エリアスだそうです。コンパイルする環境によってはFloatになったりDoubleになったりするのですがそれをきちんと把握せずにルーズにFloatやDoubleの値を適用しようとすると当然ながらエラーになるケースが出てきます。
|
1
誤記訂正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
swiftでは浮動小数点数を表す型として
|
1
|
+
swiftでは浮動小数点数を表す型として精度の異なる2種類の基本型がありますね。
|
2
2
|
|
3
3
|
Float(IEE 32bit floating point number)
|
4
4
|
Double(IEEE 64bit floating point number)
|