gpt4 book ai didi

swift - 为什么这个操作总是返回0

转载 作者:行者123 更新时间:2023-11-28 11:22:30 25 4
gpt4 key购买 nike

所以我正在制作一个计算单利的应用程序。这是我的代码:

    @IBOutlet var principle: UITextField!
@IBOutlet var rate: UITextField!
@IBOutlet var time: UITextField!
@IBOutlet var total: UILabel!
//@IBOutlet var textFields: [UITextField]!
@IBAction func buttonTapped(AnyObject) {
println("Calculate button tapped!")
var principleInt: Int = principle.text.toInt()!
var rateInt: Int = rate.text.toInt()! / 100
var timeInt: Int = time.text.toInt()!
var answer: Int = timeInt * rateInt * principleInt
println(answer)
var myString = String(answer)
total.text = myString
}

但是 answer 总是返回 0,这是为什么呢?我该如何解决?

最佳答案

我敢打赌你的问题就在这里:

var rateInt: Int = rate.text.toInt()! / 100

假设您输入了 5 作为费率。因此,您得到字符串 "5",将其转换为 int 5,除以 100 并得到 0。然后将其乘以任意两个其他数字,结果为 0

为什么?好吧,整数的全部意义在于它们是没有分数值的数字。*参见Wikipedia了解更多细节,但这应该足以理解 5/100 是一个小数,如果你强制 Swift 将它变成一个整数,你可能得到的最好的是 0 (或 1)。**

如果您想处理不是 100% 的偶数倍的速率,您可能需要将 rateInt 设置为一个除以 100 的整数,然后设置另一个变量,例如 rateFractiondouble,其值为 rateInt/100.0,然后将其与其他两个值相乘,然后(如果需要的话) ) 四舍五入并在末尾转换回整数。


* 更准确地说,整数的全部意义在于它们是自然数对负数的扩展。你可以把它放在加法逆、前驱、减法闭包等方面。但对于连整数是什么都不知道的人来说,“没有分数值的数字”可能更清楚。

** 有不同的规则可以说是有意义的:向 0 舍入,向负无穷大舍入,向最接近的整数舍入,以及 1/2 的几个不同的特殊规则之一>。但这在这里并不重要;分数 5/100 介于 01 之间,因此如果您试图强制它进行舍入,它将四舍五入为这两个数字之一是一个整数。在 Swift 和几乎所有其他编程语言中它恰好是 0 的事实并不那么重要。

关于swift - 为什么这个操作总是返回0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26349550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com