golang에서 나머지를 찾는 방법

PHPz
풀어 주다: 2023-04-27 10:46:37
원래의
2134명이 탐색했습니다.

컴퓨터 프로그래밍에서는 나머지를 구하는 것이 일반적인 작업입니다. Golang에는 나머지를 찾는 방법이 많이 있습니다. 이 기사에서는 이러한 방법과 차이점 및 적용 시나리오를 소개합니다.

1. 모듈로 연산자(%)를 사용하세요

Golang에서는 모듈로 연산자(%)를 사용하여 두 숫자의 나머지를 구할 수 있습니다. 예:

a := 7
b := 3
c := a % b // c 的值为 1
로그인 후 복사

이 예에서는 7을 3으로 나눈 나머지를 계산했으며 결과는 1입니다. 배당금이 음수인 경우에도 결과는 여전히 양수입니다. 예:

a := -7
b := 3
c := a % b // c 的值为 -1
로그인 후 복사

모듈로 연산자를 통해 부동 소수점 숫자의 나머지를 계산할 때 컴파일 오류가 발생한다는 점에 유의해야 합니다. 예:

a := 5.2
b := 2.5
c := a % b // 编译错误
로그인 후 복사

따라서 부동 소수점 수의 나머지를 계산할 때는 다음 방법을 사용해야 합니다.

2. 수학 패키지의 함수 사용

Golang의 수학 패키지는 부동 소수점 숫자를 처리할 수 있는 나머지와 관련된 몇 가지 함수를 제공합니다. 이러한 함수는 다음과 같습니다.

  1. math.Mod(x, y): x를 y로 나눈 나머지를 반환하며 결과는 x와 동일한 부호를 갖습니다.
x := 5.2
y := 2.5
z := math.Mod(x, y) // z 的值为 0.2
로그인 후 복사

y가 0이면 런타임 오류가 발생한다는 점에 유의하는 것이 중요합니다.

  1. math.Remainder(x, y): x를 y로 나눈 나머지를 반환합니다. 결과는 x와 동일한 부호를 갖습니다.
x := -7.3
y := 3.1
z := math.Remainder(x, y) // z 的值为 -1.1
로그인 후 복사

y가 0이면 런타임 오류가 발생한다는 점에 유의하는 것이 중요합니다.

3. Golang 구조를 사용하는 방법

Golang 구조에 메소드를 정의하여 나머지를 계산할 수 있습니다. 이 방법을 사용하면 계산 프로세스를 구조로 캡슐화하여 코드를 더욱 표준화하고 유지 관리하기 쉽게 만들 수 있습니다. 다음은 구조 사용의 예입니다.

type Calculator struct {}

func (c Calculator) Mod(a, b int) int {
    return a % b
}

func main() {
    calc := Calculator{}
    a := 7
    b := 3
    c := calc.Mod(a, b) // c 的值为 1
}
로그인 후 복사

이 예에서는 계산기 구조를 정의하고 그 안에 Mod 메서드를 정의합니다. 이 메서드는 두 개의 정수를 매개 변수로 받아들이고 나머지를 반환합니다. 기본 함수에서는 Calculator 개체를 인스턴스화하고 Mod 메서드를 호출하여 나머지를 계산합니다.

요약

이 글에서는 모듈로 연산자, 수학 패키지의 함수, 구조 사용 등 Golang에서 나머지를 찾는 여러 가지 방법을 소개합니다. 실제 프로그래밍에서는 특정 상황에 따라 가장 적합한 방법을 선택할 수 있습니다. 정수의 나머지를 계산해야 하는 경우 모듈로 연산자를 사용할 수 있습니다. 부동 소수점 숫자의 나머지를 계산해야 하는 경우 프로젝트에 여러 위치가 있는 경우 수학 패키지의 함수를 사용할 수 있습니다. 나머지를 계산해야 하며 이 프로세스를 통해 구조 방법을 통해 이를 캡슐화할 수 있습니다.

위 내용은 golang에서 나머지를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿