【问题标题】:Format float value with 2 decimal places [duplicate]使用 2 位小数格式化浮点值 [重复]
【发布时间】:2015-08-07 10:52:02
【问题描述】:

如何将结果四舍五入到小数点后 2 位并在结果标签上显示?我找到了一些陈述,但我是 Swift 新手,实际上我很难为我的项目重建示例。

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet var txt: UITextField!
    
    @IBOutlet var l5: UILabel!
    @IBOutlet var l10: UILabel!
    @IBOutlet var l15: UILabel!
    @IBOutlet var l20: UILabel!
    @IBOutlet var l25: UILabel!
    @IBOutlet var l30: UILabel!
    @IBOutlet var l35: UILabel!
    @IBOutlet var l40: UILabel!
    
    @IBAction func Berechnen(sender: AnyObject) {
        
        var Zahl = (txt.text as NSString).floatValue
        
        l5.text  = "\((Zahl / 95) * (100))"
        l10.text = "\((Zahl / 90) * (100))"
        l15.text = "\((Zahl / 85) * (100))"
        l20.text = "\((Zahl / 80) * (100))"
        l25.text = "\((Zahl / 75) * (100))"
        l30.text = "\((Zahl / 70) * (100))"
        l35.text = "\((Zahl / 65) * (100))"
        l40.text = "\((Zahl / 60) * (100))"
    }
    
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        self.view.endEditing(true)
        return false
    }

}

【问题讨论】:

    标签: swift xcode6


    【解决方案1】:

    您可以使用标准string formatting specifiers 舍入到任意小数位。特别是%.nf 其中n 是您需要的小数位数:

    let twoDecimalPlaces = String(format: "%.2f", 10.426123)
    

    假设您想在每个 l* 标签上显示数字:

    @IBAction func Berechnen(sender: AnyObject) {
    
        var Zahl = (txt.text as NSString).floatValue
    
        l5.text  = String(format: "%.2f", (Zahl / 95) * 100)
        l10.text = String(format: "%.2f", (Zahl / 90) * 100)
        l15.text = String(format: "%.2f", (Zahl / 85) * 100)
        l20.text = String(format: "%.2f", (Zahl / 80) * 100)
        l25.text = String(format: "%.2f", (Zahl / 75) * 100)
        l30.text = String(format: "%.2f", (Zahl / 70) * 100)
        l35.text = String(format: "%.2f", (Zahl / 65) * 100)
        l40.text = String(format: "%.2f", (Zahl / 60) * 100)
    }
    

    【讨论】:

    • 我看到了所有之前的问题。谢谢。但我不知道我必须把它放在我的代码中的什么地方......
    • 玩一玩总能帮助我弄清楚问题,因为我已经更新了答案。
    • //它会更有帮助,通过指定你想要多少小数点。 let decimalPoint = 2 let floatAmount = 1.10001 let amountValue = String(format: "%0.*f", decimalPoint, floatAmount)
    • 谢谢!效果很好
    猜你喜欢
    • 2016-10-04
    • 2011-09-15
    • 2011-07-08
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2011-12-17
    • 2011-05-23
    • 1970-01-01
    相关资源
    最近更新 更多