在 UILabel 中查看带两位小数的数字 [重复]

Posted

技术标签:

【中文标题】在 UILabel 中查看带两位小数的数字 [重复]【英文标题】:View numbers with two decimals in UILabel [duplicate] 【发布时间】:2019-01-20 11:10:56 【问题描述】:

我是 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】:

在您的情况下,最简单、更安全的方法是使用 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)
    

此处预期的输出将四舍五入到小数点后第二位,并且始终显示两位小数。例如:

4 被内插为 4.00 4.6 被内插为 4.60 4.4374 被内插为 4.44 4.4324 被内插为 4.43

【讨论】:

始终使用NumberFormatter 向用户显示号码。插值未正确本地化。对于数据编码或控制台日志来说已经足够了,但对于向用户展示来说还不够。 @Sulthan 你说得对,我忘记了这个选项。谢谢你的提醒! 遗憾的是,所有重复项都将插值显示为投票最高的答案,而 NumberFormatter 几乎总是应该是第一个选项。 我已更新我的答案以使用 NumberFormatter 而不是字符串插值,以提供“好的”解决方案 您可以使用numberFormatter.string(for: 1000 / treStørrelse)。 (我也会检查treStørrelse 是否不为零)

以上是关于在 UILabel 中查看带两位小数的数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何让excel饼图的百分比带两位小数

Dataweave 始终输出带两位小数的 JSON 数字

尝试显示带两位小数的数字时 number_format 和 sprintf 的意外结果

将Javascript数字转换为两位小数[重复]

如何设置带两位小数的千位分隔符?

如何在MATLAB中实现小数点后保留2位。急!!!!!!