Der Modulo-Operator in Scala
In diesem Artikel lernen wir, wie man mit dem Modulo-Operator (%
) und einigen anderen Methoden im Zusammenhang mit Modulo in Scala arbeitet.
der Modulo-Operator in Scala
Der Modulo-Operator %
wird verwendet, um den Rest, genauer gesagt den vorzeichenbehafteten Rest, zu erhalten, wenn zwei Zahlen in Scala dividiert werden.
Syntax:
val z = x % y
z
enthält den Rest, wenn x
durch y
dividiert wird. Sehen wir uns ein Beispiel an, um es besser zu verstehen.
Beispielcode:
object MyClass {
def main(args: Array[String]) {
val x = 15
val y = 4
val z = x % y
println(z)
}
}
Ausgang:
3
Wenn 15 durch 4 geteilt wird, ist der Rest 3, der in der Variablen z
gespeichert und dann auf der Konsole ausgegeben wird,
die floorMod()
-Methode in Scala
In Scala wird Math floorMod()
verwendet, um das Floor-Modulo der übergebenen Argumente zurückzugeben. Wir können diese Methode überladen, um ein int- und long-Argument anzunehmen.
Wenn der Divisor Null ist, wird die ArithmeticException dividiert durch Null
ausgelöst.
Syntax:
Math.floorMod(data_type x, data_type y)
Dabei ist der Parameter a
der Dividende und der Parameter y
der Divisor. Diese Parameter können entweder int oder long sein.
Diese Methode gibt den Floor-Modulo von (x - (floorDiv(x,y)*y)
zurück.
Beispielcode:
object MyClass {
def main(args: Array[String]) {
val x = 15
val y = 4
val z = Math.floorMod(x,y)
println(z)
}
}
Ausgang:
3
Eine häufig gestellte Frage lautet: Was ist der Unterschied zwischen der floorMod()
-Methode und dem %
-Operator in Scala?.
Beide sind gleich, wenn unsere Argumente, also der Dividende und der Divisor, positiv
sind, aber sie verhalten sich anders, wenn eines oder beide negativ sind. Dies geschieht hauptsächlich, weil die Methode das Floor-Modulo von (x - (floorDiv(x,y)*y)
zurückgibt und für ihre Antwort von der Methode floorDiv()
abhängig ist.
In einfachen Worten, die Methode floorMod()
gibt das gleiche Vorzeichen wie ihr divisor
, d.h. egal welches Vorzeichen y
hat, es wird dasselbe Vorzeichen bei der Rückgabe des Ergebnisses befolgt.
Beispielcode:
object MyClass {
def main(args: Array[String]) {
println("first: ")
println(Math.floorMod(+4, -3));
println((+4 % -3))
println("second: ")
println(Math.floorMod(-4, +3))
println((-4 % +3))
println("Third: ")
println(Math.floorMod(-4, -3))
println((-4 % -3))
}
}
Ausgang:
first:
-2
1
second:
2
-1
Third:
-1
-1
die %(y:Float)
-Methode in Scala
In Scala wird %(y:Float)
verwendet, wenn wir den Rest zurückgeben wollen, wenn ein Double durch einen Float-Wert dividiert wird.
Syntax:
double_value.%(y : Float)
Beispielcode:
object MyClass {
def main(args: Array[String]) {
val rem = (16.50012.toDouble).%(13:Float)
println("The remainder is")
println(rem)
}
}
Ausgang:
The remainder is
3.500119999999999