はじめに
ちょー初歩的なことなんですけど、知らなくて焦ったことがあったので記事にしておきます。
何が起きたのか
私は割り算のあまりは%
で求められると思っていたのですが、こんなエラーが発生しました。
'%' is unavailable: For floating point numbers use truncatingRemainder instead
あれ、%
って使えなくなったの?って思ったんですが違いました。
%
が使えるのはIntだけみたいです。
私はそれを知りませんでした。
では、DoubleやFloatなどの浮動小数点型ではどのように余りを求めるのでしょうか?
実装
Int
// ❌
func calcIntRemainder1(dividend: Int, divisor: Int) -> Int {
return dividend.remainder(dividingBy: divisor)
}
// ✅
func calcIntRemainder2(dividend: Int, divisor: Int) -> Int {
return dividend % divisor
}
Double
// ✅
func calcDoubleRemainder1(dividend: Double, divisor: Double) -> Double {
return dividend.remainder(dividingBy: divisor)
}
// ❌
func calcDoubleRemainder2(dividend: Double, divisor: Double) -> Double {
return dividend % divisor
}
Float
// ✅
func calcFloatRemainder1(dividend: Float, divisor: Float) -> Float {
return dividend.remainder(dividingBy: divisor)
}
// ❌
func calcFloatRemainder2(dividend: Float, divisor: Float) -> Float {
return dividend % divisor
}
おわり
多分初歩的なことなので、今回覚えられてよかったです。