如何从浮点值中删除前导零Swift 3
仅仅通过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)
}
100只需乘以价格,将其转换为Int
摆脱一分的分数。如果你想四舍五入那么它稍微复杂一些。
比方说price = 3.335
然后做
if (price*1000 %10 >= 5) {
price = Int(price * 100 + 1)
}
else {
price = Int(price * 100)
}
的else
部分是你所需要的,如果你不关心四舍五入最后一分钱做。
您可以将它转换为double,然后使用round(),然后将其转换回int。 –
@TristanBeaton是的,哈哈,可能会更容易。我不知道有双打的round()函数。 – RPatel99
它也可用于浮动。你可以在我的答案中看到。这是一个相当聪明的四舍五入的方式,你已经想出了。 –
尝试下面的代码,
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
如果你有如下:)
男人有任何疑问评论我觉得愚蠢!我应该想到这一点。谢啦 ! – Ryan