きっかけ
swiftで割り算したら、予想と違った挙動をしたので、メモ。
実証
print(3 / 2)
期待値としては、1.5
が出て欲しいが、上記コードを実行すると
$swift sample.swift 1
1
になる。
Int型で割り算すると、結果は、Int型になる。
小数点以下は、切り捨て。
小数点以下も欲しい場合は、どちらかをDoubleにする必要がある。
結果をDouble型にしても、小数点は切り捨てられたまま。
print(Double(3 / 2)) // -> 1.0
小数点以下も欲しい場合は、どちらかをDoubleにすればいい。
print(3.0 / 2) print(3 / 2.0) print(3.0 / 2.0)
上記を実行すると、下記になる。
swift sample.swift 1.5 1.5 1.5
どういう結果が欲しいのか、考えて型を指定する必要があるのは、面倒だと思いました。(小並感)