SwiftでFloatをIntに変換する



Convert Float Int Swift



解決:

あなたは変換することができます浮かぶこのようなSwiftのInt:

var myIntValue:Int = Int(myFloatValue)println '私の値は(myIntValue)'

@paulmのコメントでこの結果を達成することもできます:



var myIntValue = Int(myFloatValue) 

明示的な変換

Intに変換すると、精度が失われます(事実上切り捨てられます)。数学ライブラリにアクセスすることで、明示的な変換を実行できます。例えば:

あなたがしたい場合 切り捨て そして整数に変換します:



let f = 10.51 let y = Int(floor(f))

結果は10です。

あなたがしたい場合 切り上げする そして整数に変換します:

let f = 10.51 let y = Int(ceil(f))

結果は11です。



あなたがしたい場合は 明示的に 最も近い整数に丸める

let f = 10.51 let y = Int(round(f))

結果は11です。

後者の場合、これは衒学的に見えるかもしれませんが、暗黙の変換がないため、意味的に明確です...たとえば信号処理を行う場合は重要です。


数値を正確に丸める方法はたくさんあります。最終的には、swiftの標準ライブラリメソッドを使用する必要がありますrounded()を使用して、浮動小数点数を必要な精度で丸めます。

丸める 使用する.upルール:

let f:Float = 2.2 let i = Int(f.rounded(.up))// 3

丸める 使用する.downルール:

let f:Float = 2.2 let i = Int(f.rounded(.down))// 2

に丸めるには 最寄り 整数の使用.toNearestOrEvenルール:

let f:Float = 2.2 let i = Int(f.rounded(.toNearestOrEven))// 2

次の例に注意してください。

let f:Float = 2.5 let i = Int(roundf(f))// 3 let j = Int(f.rounded(.toNearestOrEven))// 2