Time 如何将输入的时间除以浮点数

Time 如何将输入的时间除以浮点数,time,swift,floating-point,divide,Time,Swift,Floating Point,Divide,所以我制作了一个应用程序,你输入一个1:32.40的时间,然后把这个时间除以50。到目前为止,我把一切都变成了浮点数,但这显然是不对的。如何让用户像正常情况一样输入时间,然后将其转换为易于分割的浮点? 我的计算函数当前看起来像这样 func calculation() -> Bool{ raceDistance = txtRaceDistance.text practiceDistance = txtPracticeDistance.text

所以我制作了一个应用程序,你输入一个1:32.40的时间,然后把这个时间除以50。到目前为止,我把一切都变成了浮点数,但这显然是不对的。如何让用户像正常情况一样输入时间,然后将其转换为易于分割的浮点? 我的计算函数当前看起来像这样

func calculation() -> Bool{
        raceDistance = txtRaceDistance.text
        practiceDistance = txtPracticeDistance.text
        goalTime = txtGoalTime.text

        var fGoalTime = (goalTime as NSString).floatValue
        var fRaceDistance = (raceDistance as NSString).floatValue
        var fPracticeDistance = (practiceDistance as NSString).floatValue

        dividedDistance = fRaceDistance / fPracticeDistance
        answer = fGoalTime / dividedDistance

        var answerFormat : NSString = NSString(format: "%0.2f", answer)

        lblAnswer.text = String(answerFormat)

        return true
    }

fGoalTime是唯一的问题,因为用户将键入类似于1:20.40的内容。我假设您的这一行有错误,或者不是正确的数字。 var fGoalTime=goalTime as NSString.floatValue 您需要编写一个辅助函数timeStringToFloatString->Float

在这里,您将需要使用String.componentsSeparatedByString,可能类似于以下内容:

func timeStringToFloat(timeString: String) -> Float {
    let milliseconds = timeString.componentsSeparatedByString(".")[1]
    let seconds = timeString.componentsSeparatedByString(.)[0].componentsSepatatedByString(":")[1]
    let minutes = timeString.componentsSeparatedByString(":")[0]

    //now we have them all as String
    //maybe covert to float then add
    let time = Float(minutes) * 60 + Float(seconds) + Float("0."+milliseconds)
    return time

}