Xcode 将字符串从标签转换为Int

Xcode 将字符串从标签转换为Int,xcode,swift3,Xcode,Swift3,我有一个按钮,可将1添加到尝试分数标签,然后有一个按钮可将1或0添加到正确的分数标签,具体取决于按下哪个按钮。然后,该数据被传递到各个ViewController。在最后一个viewController中,我想将标签中的字符串转换为int,然后进行简单的计算以获得百分比。我试过的代码如下。百分比未显示,因此我认为我没有正确转换它 在以前的VC中,aScore和cScore设置为=0的变量。例如 var aScore = 0 var cScore = 0 我在VC之间传递数据,然后在最终的vie

我有一个按钮,可将1添加到尝试分数标签,然后有一个按钮可将1或0添加到正确的分数标签,具体取决于按下哪个按钮。然后,该数据被传递到各个ViewController。在最后一个viewController中,我想将标签中的字符串转换为int,然后进行简单的计算以获得百分比。我试过的代码如下。百分比未显示,因此我认为我没有正确转换它

在以前的VC中,aScore和cScore设置为=0的变量。例如

var aScore = 0
var cScore = 0
我在VC之间传递数据,然后在最终的viewController上退出以下代码

import UIKit

class gViewController: UIViewController {


@IBOutlet weak var correctScore: UILabel!
@IBOutlet weak var attemptScore: UILabel!
@IBOutlet weak var percentage: UILabel!

var aScore: Int!
var cScore: Int!
var percentage1: Int!


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    correctScore.text = NSString(format: "%i", cScore) as String
    attemptScore.text = NSString(format: "%i", aScore) as String

    let c:Int? = Int(correctScore.text!)
    let a:Int? = Int(attemptScore.text!)

    percentage1 = c!/a!

    percentage.text = NSString(format: "%i", percentage1) as String
}
试试这个

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    self.correctScore.text = String(format: "%.1f", cScore)
    self.attemptScore.text = String(format: "%.1f", aScore)

    var percentage1 = Float(cScore)/Float(aScore)

    self.percentage.text = String(format: "%.1f", percentage1)
}试试这个

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    self.correctScore.text = String(format: "%.1f", cScore)
    self.attemptScore.text = String(format: "%.1f", aScore)

    var percentage1 = Float(cScore)/Float(aScore)

    self.percentage.text = String(format: "%.1f", percentage1)

}

您能在
百分比1
之前打印
a
c
值的
吗?然后
打印
百分比1
值和
百分比
值?您需要首先确保变量具有值。为什么首先将
Int
转换为
NSString
,然后将
NSString
转换为
Int
?为什么不在最后一个视图控制器之前,在ViewController上执行
cScore/aScore
,我已使用代码:Var aScore=0将cScore和aScore设置为0。我已经编辑了上面的帖子。因此,为什么我尝试将它们转换为INT,您可以在
百分比1
之前打印
a
c
值吗?然后
打印
百分比1
值和
百分比
值?您需要首先确保变量具有值。为什么首先将
Int
转换为
NSString
,然后将
NSString
转换为
Int
?为什么不在最后一个视图控制器之前,在ViewController上执行
cScore/aScore
,我已使用代码:Var aScore=0将cScore和aScore设置为0。我已经编辑了上面的帖子。因此,我尝试将它们转换为前面的ViewController,并存在以下代码:var aScore=0 var cScore=0。因此,当我开始计算百分比时,您给出的代码不起作用。我用发生的事情的图片编辑了原始帖子。您确实有一个int类型的变量aScrote和cScore。对于除法,请确保它们被解释为float或double进行除法。@KeironMorris您所说的上一个viewController是什么意思?您是否正在将数据从一个VC传递到另一个VC?是的,我正在使用Segue将数据从一个VC传递到另一个VC@f_qi@KeironMorris传递数据时,请确保数据确实传递到目标VC。在以前的ViewController上,存在以下代码:var aScore=0 var cScore=0。因此,当我开始计算百分比时,您给出的代码不起作用。我用发生的事情的图片编辑了原始帖子。您确实有一个int类型的变量aScrote和cScore。对于除法,请确保它们被解释为float或double进行除法。@KeironMorris您所说的上一个viewController是什么意思?您是否正在将数据从一个VC传递到另一个VC?是的,我正在使用Segue将数据从一个VC传递到另一个VC@f_qi@KeironMorris传递数据时,确保数据确实传递到目标VC。