El Operador Modulo en Scala
En este artículo, aprenderemos a trabajar con el operador de módulo (%
) y algunos otros métodos relacionados con el módulo en Scala.
el operador de módulo en Scala
El operador de módulo %
se usa para dar el resto, específicamente el resto con signo, cuando dos números se dividen en Scala.
Sintaxis:
val z = x % y
z
contiene el resto cuando x
se divide por y
. Veamos un ejemplo para entenderlo mejor.
Código de ejemplo:
object MyClass {
def main(args: Array[String]) {
val x = 15
val y = 4
val z = x % y
println(z)
}
}
Producción :
3
Cuando 15 se divide por 4, el resto es 3, que se almacena en la variable z
y luego se imprime en la consola,
el método floorMod()
en Scala
En Scala, Math floorMod()
se usa para devolver el módulo de piso de los argumentos pasados. Podemos sobrecargar este método para tomar un argumento int y long.
Si el divisor es cero, arroja la Excepción Aritmética dividido por cero
.
Sintaxis:
Math.floorMod(data_type x, data_type y)
Aquí, el parámetro a
es el dividendo y el parámetro y
es el divisor. Estos parámetros pueden ser int o long.
Este método devuelve el módulo de suelo de (x - (floorDiv(x,y)*y)
.
Código de ejemplo:
object MyClass {
def main(args: Array[String]) {
val x = 15
val y = 4
val z = Math.floorMod(x,y)
println(z)
}
}
Producción :
3
Una pregunta común es: ¿cuál es la diferencia entre el método floorMod()
y el operador %
en Scala?.
Ambos son iguales cuando nuestros argumentos, es decir, el dividendo y el divisor, son positivos
, pero se comportan de manera diferente cuando uno o ambos son negativos. Esto sucede principalmente porque el método devuelve el módulo de suelo de (x - (floorDiv(x,y)*y)
, y depende del método floorDiv()
para su respuesta.
En palabras simples, el método floorMod()
da el mismo signo que su divisor
, es decir, cualquiera que sea el signo y
, se seguirá el mismo signo al devolver el resultado.
Código de ejemplo:
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))
}
}
Producción :
first:
-2
1
second:
2
-1
Third:
-1
-1
el método %(y:Float)
en Scala
En Scala, %(y:Float)
se usa cuando queremos devolver el resto cuando un doble se divide por un valor flotante.
Sintaxis:
double_value.%(y : Float)
Código de ejemplo:
object MyClass {
def main(args: Array[String]) {
val rem = (16.50012.toDouble).%(13:Float)
println("The remainder is")
println(rem)
}
}
Producción :
The remainder is
3.500119999999999