如何在 Swift 中四舍五入到小数点后两位?
How can I round UP to two decimal places in Swift?
我正在使用下面的代码,并试图让我的 'outputvalue' 在按下按钮时四舍五入到小数点后两位。
我在网上找到了各种不同的方法,并尝试将它们结合起来,但没有成功。有人能给我指出正确的方向吗?
如果计算结果为 164.98001,那么我希望答案显示为 164.99。
编辑 - 我不认为这是一个重复的问题,因为我的问题与四舍五入所有数字有关。
@IBAction func buttoncalc(_ sender: Any) {
total.isHidden = false
let firstValue = Double(text1.text!)
let secondValue = Double(text2.text!)
let thirdValue = Double(text3.text!)
let forthValue = Double(text4.text!)
if firstValue != nil && secondValue != nil && thirdValue != nil && forthValue != nil {
let outputvalue = Double(((firstValue! * secondValue!)/1000)*0.5)*(thirdValue! - forthValue!)
total.text = "£ \(outputvalue)"
} else {
total.text = nil
}
}
您可以使用 NumberFormatter
来获取格式为 String
的数字。只需将小数位数限制为 2 并将 roundingMode
设置为 up
let formatter = NumberFormatter()
formatter.roundingMode = .up
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 2
let number = 164.98001
print(formatter.string(from: NSNumber(value: number)) ?? "") // 164.99
为了进一步改进您的逻辑,您可以设置格式化程序的 numberStyle
和 locale
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "en_UK")
// £164.99
您的具体用途:
let string = formatter.string(from: NSNumber(value: outputvalue)) ?? ""
total.text = string
我正在使用下面的代码,并试图让我的 'outputvalue' 在按下按钮时四舍五入到小数点后两位。
我在网上找到了各种不同的方法,并尝试将它们结合起来,但没有成功。有人能给我指出正确的方向吗?
如果计算结果为 164.98001,那么我希望答案显示为 164.99。
编辑 - 我不认为这是一个重复的问题,因为我的问题与四舍五入所有数字有关。
@IBAction func buttoncalc(_ sender: Any) {
total.isHidden = false
let firstValue = Double(text1.text!)
let secondValue = Double(text2.text!)
let thirdValue = Double(text3.text!)
let forthValue = Double(text4.text!)
if firstValue != nil && secondValue != nil && thirdValue != nil && forthValue != nil {
let outputvalue = Double(((firstValue! * secondValue!)/1000)*0.5)*(thirdValue! - forthValue!)
total.text = "£ \(outputvalue)"
} else {
total.text = nil
}
}
您可以使用 NumberFormatter
来获取格式为 String
的数字。只需将小数位数限制为 2 并将 roundingMode
设置为 up
let formatter = NumberFormatter()
formatter.roundingMode = .up
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 2
let number = 164.98001
print(formatter.string(from: NSNumber(value: number)) ?? "") // 164.99
为了进一步改进您的逻辑,您可以设置格式化程序的 numberStyle
和 locale
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "en_UK")
// £164.99
您的具体用途:
let string = formatter.string(from: NSNumber(value: outputvalue)) ?? ""
total.text = string