teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

誤記訂正

2018/01/06 08:31

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

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

誤記訂正

2018/01/06 08:31

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,4 +1,4 @@
1
- swiftでは浮動小数点数を表す型として度の異なる2種類の基本型がありますね。
1
+ swiftでは浮動小数点数を表す型として度の異なる2種類の基本型がありますね。
2
2
 
3
3
  Float(IEE 32bit floating point number)
4
4
  Double(IEEE 64bit floating point number)