Scala의 모듈로 연산자
이 기사에서는 모듈로 연산자(%
)를 사용하여 작업하는 방법과 Scala에서 모듈로와 관련된 몇 가지 다른 방법을 배웁니다.
Scala의 모듈로 연산자
모듈로 연산자 %
는 Scala에서 두 숫자를 나눌 때 나머지, 특히 부호 있는 나머지를 제공하는 데 사용됩니다.
통사론:
val z = x % y
z
는 x
를 y
로 나눈 나머지를 포함합니다. 더 잘 이해하기 위해 예를 살펴보겠습니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val x = 15
val y = 4
val z = x % y
println(z)
}
}
출력:
3
15를 4로 나누면 나머지가 3이 되어 변수 z
에 저장되어 콘솔에 출력되고,
Scala의 floorMod()
메서드
Scala에서 Math floorMod()
는 전달된 인수의 바닥 모듈로를 반환하는 데 사용됩니다. 이 메서드를 오버로드하여 int 및 long 인수를 사용할 수 있습니다.
제수가 0이면 ArithmeticException 나누기 0
이 발생합니다.
통사론:
Math.floorMod(data_type x, data_type y)
여기서 a
매개변수는 피제수이고 y
매개변수는 제수입니다. 이러한 매개변수는 int 또는 long일 수 있습니다.
이 메서드는 (x - (floorDiv(x,y)*y)
의 바닥 모듈로를 반환합니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val x = 15
val y = 4
val z = Math.floorMod(x,y)
println(z)
}
}
출력:
3
일반적인 질문 중 하나는 Scala에서 floorMod()
메서드와 %
연산자의 차이점은 무엇입니까?입니다.
우리의 인수, 즉 피제수와 제수가 양수
인 경우 둘 다 동일하지만 둘 중 하나 또는 둘 다 음수인 경우에는 다르게 동작합니다. 이것은 주로 메서드가 (x - (floorDiv(x,y)*y)
의 바닥 모듈로를 반환하고 floorDiv()
메서드에 응답하기 때문에 발생합니다.
간단히 말해서 floorMod()
메서드는 divisor
와 동일한 부호를 제공합니다. 즉, y
부호가 무엇이든 결과를 반환할 때 동일한 부호를 따릅니다.
예제 코드:
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))
}
}
출력:
first:
-2
1
second:
2
-1
Third:
-1
-1
Scala의 %(y:Float)
메서드
Scala에서 %(y:Float)
는 double을 float 값으로 나눈 나머지를 반환하려는 경우에 사용됩니다.
통사론:
double_value.%(y : Float)
예제 코드:
object MyClass {
def main(args: Array[String]) {
val rem = (16.50012.toDouble).%(13:Float)
println("The remainder is")
println(rem)
}
}
출력:
The remainder is
3.500119999999999