【发布时间】:2017-11-09 21:30:37
【问题描述】:
你好强大的 StackOverflowers,
我知道这肯定是一个问题超过一百次,但我只是在这个阶段作为一个完全的初学者(Swift 4 / Xcode 9),我完全不知道如何实现所有这些提示和事情我还没有发现。
我想这个很简单,所以这是我的神经痛:
我正在为百分比创建一个小应用程序。一切正常...只要我不触摸设置为德语的 iPhone 数字键盘上的逗号,因为计算仅适用于点分隔符。
在开始时,我希望将 UITextField 转换为点分隔的整数/浮点数,并给出结果,我想将其转换回逗号分隔的数字。 短:用逗号分隔输入,用点分隔计算,“打印”结果显示逗号分隔。
这是当前工作的代码,只要电话设置为英语或(如果是德语)字段中仅添加非十进制数字:
哦...还有一件重要的事情:我未能将迄今为止在这里找到的代码 sn-ps 添加到我的 ViewController.swift... 我只是不知道将这些行放在哪里:( 我们开始:
class ViewController: UIViewController {
//User Fields:
@IBOutlet weak var kind: UITextField! // kind of unit (€, $, metres...)
@IBOutlet weak var base: UITextField! //base
@IBOutlet weak var percent: UITextField! //percent (1%, 4,5% etc.)
//Result Labels:
@IBOutlet weak var percentInKind: UILabel! //the percent as value in kind
@IBOutlet weak var total: UILabel! //base minus percentInKind
//Calculation:
@IBAction func calculateTotal(_ sender: Any) {
let kindConv = String(kind.text!) //Converted to String
let baseConv = Double(base.text!) //Converted to Double
let percentConv = Double(percent.text!) //Converted to Double
let percentInKindConv = Double(baseConv! * percentConv!) / 100
percentInKind.text = String(format: "%.2f", percentInKindConv) + " \(kindConv)"
total.text = String(format: "%.2f", baseConv! - percentInKindConv) + " \(kindConv)"
}
【问题讨论】:
-
提示 - 使用
NumberFormatter转换为/从用户呈现/输入的字符串。 -
谢谢,@maddy。我在这里找到了很多“NumberFormatter”提及,但从未找到一个可以准确涵盖这种情况的内容。我已经买了那本德文 1,300 页的 Swift 4 书,现在我将了解 NumberFormatter:D
-
我不断收到错误消息...无法将字符串转换为 NumberFormatter,无法转换 Double.... 转换 Float... 什么也没有。我只是不明白:(
-
用您的相关代码更新您的问题。
-
嗯...我猜这是我的问题。有两件事我没有按照我想要的方式得到它。第一件事是应用程序与德国数字键盘崩溃,因为有一个逗号而不是一个点。所以我希望应用程序将逗号“,”转换为“。”以便按钮中的计算有效。在计算之后,我希望它显示在带有“,”的标签中。我真的不知道上面代码的哪一部分是相关部分,因为我不知道这些转换到底是在哪里进行的。