2017-05-09 85 views

回答

1

僅僅通過100

0.33 * 100 = 33 

乘它,如果它是一個字符串。即「0.33」,那麼,

if let float = Float("0.33") { 

    let cents = float * 100 

    let centsStr = "\(cents)" // equals "33" 
} 

如果你有一個多位小數的情況,那麼就繞過這條路。

if let float = Float("0.332123") { 

    let cents = Int(round(float * 100)) 

    let centsStr = "\(cents)" // equals "33" 

    print(centsStr) 
} 
+0

男人有任何疑問評論我覺得愚蠢!我應該想到這一點。謝啦 ! – Ryan

0

100只需乘以價格,將其轉換爲Int擺脫一分的分數。如果你想四捨五入那麼它稍微複雜一些。

比方說price = 3.335

然後做

if (price*1000 %10 >= 5) { 
    price = Int(price * 100 + 1) 
} 
else { 
    price = Int(price * 100) 
} 

else部分是你所需要的,如果你不關心四捨五入最後一分錢做。

+0

您可以將它轉換爲double,然後使用round(),然後將其轉換回int。 –

+0

@TristanBeaton是的,哈哈,可能會更容易。我不知道有雙打的round()函數。 – RPatel99

+0

它也可用於浮動。你可以在我的答案中看到。這是一個相當聰明的四捨五入的方式,你已經想出了。 –

1

嘗試下面的代碼,

var floatNumber = 0.33 
let cent:Int = {() -> Int in 

    if floatNumber > 1{ 
     floatNumber = floatNumber-floatNumber.rounded() 
    } 
    while floatNumber <= 0.1{ 
     floatNumber = floatNumber*100 
    } 
    return Int((floatNumber*100).rounded()) 
}() 
print(cent) //33 

輸出:

floatNumber = 0.33 -> 33 
floatNumber = 1000000.33 -> 33 
floatNumber = 0.0000033 -> 33 

如果你有如下:)