在UILabel中查看带有两位小数的数字

时间:2019-01-20 11:10:56

标签: swift decimal rounding

我是Swift的新手,英语水平很差。但是,我正在尝试建立一种在我们公司中使用的无价之宝。

我希望用户输入一些数字,然后让他们知道价格。它包含很多变量,但我认为每个人的配置都一样。

假设我希望用户在UiTextField中输入金额,标签应显示1000 /金额,并带有两位小数。

我现在的代码是这个;

import UIKit
import Foundation

class ViewController: UIViewController {
    @IBOutlet weak var svar: UILabel!
    @IBOutlet weak var inpu2: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
         svar.text = ""
    }

    @IBAction func input(_ sender: Any) {
        if let treStørrelse = Float(inpu2.text!) {
            svar.text = "\(1000 / treStørrelse)"
        }
    }
}

这时我的输出显示为xx.xxxxxxxxxx 我希望它显示为xx.xx

我还需要在进一步的计算中使用答案。

1 个答案:

答案 0 :(得分:0)

对于您来说,最简单,更安全的方法是使用NumberFormatter对象:

lazy var numberFormatter: NumberFormatter = {
  let nf = NumberFormatter()
  nf.minimumFractionDigits = 2
  nf.maximumFractionDigits = 2

  return nf
}()

@IBAction func input(_ sender: Any) {
    if let text = inpu2.text, let treStørrelse = Float(text) {
        svar.text = numberFormatter.string(for: 1000 / treStørrelse)
    }
}

此处,预期输出将四舍五入到第二个小数,并且它将始终显示2个小数。例如:

  • 4 插值为 4.00
  • 4.6 插值为 4.60
  • 4.4374 插值为 4.44
  • 4.4324 插值为 4.43