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