知道一个数的最高位
know the highest digit of a number
我正在 Xcode 8 中使用 swift 3 做一个应用程序,它是一个基本转换器,输入值是用按钮设置的:
@IBAction func inputButton(_ sender: UIButton)
{
currentNumber = currentNumber * 10 + (the number I want to add)
labelText.text = "\(currentNumber)"
}
它运行完美,但是当我输入大约 10 个数字时,应用程序崩溃了。在我为 "currentnumber" Xcode 设置新值的行之后显示:
线程 1:EXC_BAD_INSTRUCTION(代码=EXC_INPOV,子代码=0x0)
溢出是(谢天谢地)Swift 中的一个错误。
您可以在实际执行计算之前检查值是否会超过 Int.max
,从而在您的代码中防止出现这种情况。
这里有一些代码可以帮助您入门:
guard let inputNumber = Int(inputString) else {
labelText.text = "input not a number or out of range"
return
}
guard currentNumber < (Int.max - inputNumber) / 10 else {
labelText.text = "overflow"
return
}
currentNumber = currentNumber * 10 + inputNumber
labelText.text = "\(currentNumber)"
我正在 Xcode 8 中使用 swift 3 做一个应用程序,它是一个基本转换器,输入值是用按钮设置的:
@IBAction func inputButton(_ sender: UIButton)
{
currentNumber = currentNumber * 10 + (the number I want to add)
labelText.text = "\(currentNumber)"
}
它运行完美,但是当我输入大约 10 个数字时,应用程序崩溃了。在我为 "currentnumber" Xcode 设置新值的行之后显示:
线程 1:EXC_BAD_INSTRUCTION(代码=EXC_INPOV,子代码=0x0)
溢出是(谢天谢地)Swift 中的一个错误。
您可以在实际执行计算之前检查值是否会超过 Int.max
,从而在您的代码中防止出现这种情况。
这里有一些代码可以帮助您入门:
guard let inputNumber = Int(inputString) else {
labelText.text = "input not a number or out of range"
return
}
guard currentNumber < (Int.max - inputNumber) / 10 else {
labelText.text = "overflow"
return
}
currentNumber = currentNumber * 10 + inputNumber
labelText.text = "\(currentNumber)"