エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

swiftの割り算での型

きっかけ

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

どういう結果が欲しいのか、考えて型を指定する必要があるのは、面倒だと思いました。(小並感)

参考サイト

【swift入門 文法編】数値型(Int型、Float型、Double型)をマスターしよう|新卒エンジニアの開発日記

演算子について 単元 | Salesforce Trailhead