试图在Swift中为变量本身添加一个百分比



我有一个变量,它是Int(loan(。我想每次点击一个按钮都增加10%。

我尝试了各种方法,首先:

loan = 50
loan = loan + loan / 100 * 10

当我打印loan时,它仍然显示50,没有添加10%。

接下来,我尝试声明一个新的Int变量(percent(来计算百分比:

loan = 50
var percent = loan / 100 * 10
loan = loan + percent

同样,loan打印50,percent打印0。

在每种情况下,我都尝试过将数学放入括号中,但结果相同。我确信这一定是一个非常简单的解决方案,但我无法解决,而且在谷歌上搜索也没有运气。

您的问题是loan被声明为IntInts不可能有分数分量,所以当你试图用50除以100时,答案0.5的分数分量被去掉,变成0。乘以10,它仍然是零,所以当你把它添加到loan时,它不会改变结果。

可以通过将loan声明为Double而不是Int来解决此问题。你也可以用1.1乘以10%。

var loan: Double = 50
loan *= 1.1

我想在每次单击按钮时添加10%。

您可以将原始值的10%或十分之一相加,也可以乘以1.1:

var loan = 50.0       // including the decimal point makes it a float

其中任何一个都可以:

loan = loan + loan * 0.1
loan = loan * 1.1
loan += loan * 0.1
loan *= 1.1

同样,"贷款"打印50,"百分比"打印0。

这是因为loan被声明为整数类型,而计算中的其他值也是整数,因此编译器推断percent也应该是整数。您可以通过显式地将loanpercent的类型设置为FloatDouble来修复此问题,如下所示:

var percent : Float = loan / 10

或者,您可以隐式地执行此操作,就像我在顶部所做的那样,将loan设置为50.0而不是50。编译器将理解50.0Float,因此它将推断loanFloat,这将导致用loan进行的计算是该类型的,并且percent也将是Float

首先,贷款应该是双倍的(因为int不能有分数(

然后你可以做这样的事情:

loan = 50
loan *= 1.1

最新更新