在 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 中查看带两位小数的数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章