Ios 小型计算器
我有密码:Ios 小型计算器,ios,swift,Ios,Swift,我有密码: @IBOutlet weak var summaryLbl: UILabel! var actualNumber: Double = 0 var previousNumber: Double = 0 var operationMath: Bool = false var operation = 0 @IBAction func numberPressed(_ sender: UIButton) { if operationMath == true {
@IBOutlet weak var summaryLbl: UILabel!
var actualNumber: Double = 0
var previousNumber: Double = 0
var operationMath: Bool = false
var operation = 0
@IBAction func numberPressed(_ sender: UIButton) {
if operationMath == true
{
summaryLbl.text = String(sender.tag)
actualNumber = Double(summaryLbl.text!)!
operationMath = false
}
else
{
if summaryLbl.text == "0" {
summaryLbl.text = ""
}
summaryLbl.text = summaryLbl.text! + String(sender.tag)
actualNumber = Double(summaryLbl.text!)!
}
}
@IBAction func buttons(_ sender: UIButton) {
if summaryLbl.text != "" && sender.tag != 10 && sender.tag != 17
{
previousNumber = Double(summaryLbl.text!)!
if sender.tag == 13
{
summaryLbl.text = "/";
}
else if sender.tag == 14
{
summaryLbl.text = "x";
}
else if sender.tag == 15
{
summaryLbl.text = "-";
}
else if sender.tag == 16
{
summaryLbl.text = "+";
}
operation = sender.tag
operationMath = true;
}
else if sender.tag == 17
{
if operation == 13
{
let summary = rounding(number: previousNumber / actualNumber)
summaryLbl.text = summary
}
else if operation == 14
{
let summary = rounding(number: previousNumber * actualNumber)
summaryLbl.text = summary
}
else if operation == 15
{
let summary = rounding(number: previousNumber - actualNumber)
summaryLbl.text = summary
}
else if operation == 16
{
let summary = rounding(number: previousNumber + actualNumber)
summaryLbl.text = summary
}
else if operation == 11 //TODO: negative numbers
{
let summary = rounding(number: previousNumber + actualNumber)
summaryLbl.text = summary
}
else if operation == 12 //TODO: percentages
{
let summary = rounding(number: (previousNumber * actualNumber) / 100)
summaryLbl.text = summary
}
}
else if sender.tag == 10
{
summaryLbl.text = "0"
previousNumber = 0;
actualNumber = 0;
operation = 0;
}
}
override func viewDidLoad() {
super.viewDidLoad()
summaryLbl.text = "0"
previousNumber = 0;
actualNumber = 0;
operation = 0;
}
func rounding (number: Double) -> String {
let numberAfterRounding = String(number)
return numberAfterRounding
}
我正在做一个小计算器
我有一个问题:
问题1的答案:
假设您的结果为3.0,您只想显示
“3”
,而不是“3.0”
,对于1.23
,您想显示“1.23”
。首先对数字进行四舍五入,检查四舍五入的数字和结果是否相同。如果它们相同,则将其转换为Int并对其进行插值。
这是代码
let result: Double = 3.0
let rounded = result.rounded()
if (result == rounded) { yourLabel.text = "\(Int(result))" }
else { yourLabel.text = "\(result)" }
问题2的答案:
Swift有
negate()
函数,它完全满足您的需求
var result: Double = 30
result.negate() // it's now -30
result.negate() // it's now 30 again
问题3的答案:
我想当你说百分比(%)时,你指的是模数。 在swift中,您不能对像
3.0%1.0
这样的浮点使用%(模数运算符)。相反,您必须使用截断余数(dividby:)
函数
result.truncatingRemainder(dividedBy: 10) // can be any number you like
问题2:数字*-1?