如何舍入一个双精度到最近的int在swift?

我试图做一个计算器的增长率(双),将结果四舍五入到最近的整数,并从那里重新计算,因此:
let firstUsers = 10.0
let growth = 0.1
var users = firstUsers
var week = 0


while users < 14 {
    println("week \(week) has \(users) users")
    users += users * growth
    week += 1
}

但我已经无法到达目前为止。

编辑
我喜欢这样:

var firstUsers = 10.0
let growth = 0.1
var users:Int = Int(firstUsers)
var week = 0


while users <= 14 {
    println("week \(week) has \(users) users")
    firstUsers += firstUsers * growth
    users = Int(firstUsers)
    week += 1
}

虽然我不介意它总是四舍五入,我不喜欢它,因为firstUsers不得不成为一个变量和改变整个程序(为了使下一个计算),我不想它发生。

在基金会图书馆有一个回合(它实际上是在达尔文,但基金会进口达尔文和大多数时间,你想使用基金会,而不是直接使用达尔文)。
import Foundation

users = round(users)

在游乐场中运行代码,然后调用

print(round(users))

输出

15.0

round()总是在小数位是> = .5时向上舍入,而当< .5(标准舍入)。你可以使用floor()强制向下舍入,而ceil()强制向上舍入。 如果你需要四舍五入到一个特定的地方,那么你乘以pow(10.0,位数),圆,然后除以pow(10,位数): 舍入为小数点后2位:

let numberOfPlaces = 2.0
let multiplier = pow(10.0,numberOfPlaces)
let num = 10.12345
let rounded = round(10.12345 * multiplier) / multiplier
print(rounded)

输出

10.12

注意:由于浮点数学运算的方式,舍入可能不总是完全准确。最好是把它想象成更接近舍入。如果你这样做是为了显示的目的,最好使用字符串格式化来格式化数字,而不是使用数学来舍入它。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...