> 백엔드 개발 > Golang > Go Division이 0.3 대신 0을 반환하는 이유는 무엇입니까?

Go Division이 0.3 대신 0을 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-04 14:00:13
원래의
691명이 탐색했습니다.

Why Does Go Division Return 0 Instead of 0.3?

Go의 나눗셈: 0.3의 미스터리 이해

Go에서 나눗셈 연산을 수행할 때 0이 아닌 0이라는 예상치 못한 결과가 나올 수 있습니다. 0.3이 예상됩니다. 이 특이한 동작은 연산에서 유형이 지정되지 않은 상수를 사용하기 때문에 발생합니다.

Go에서 이진 연산의 피연산자는 처음에는 유형이 지정되지 않은 상수로 처리됩니다. 결과 연산 유형은 특정 우선 순위를 사용하는 피연산자에 의해 결정됩니다. 3 및 10과 같은 정수 상수의 경우 결과는 유형이 지정되지 않은 정수이므로 0입니다.

부동 소수점 결과를 얻으려면 적어도 하나의 피연산자가 부동 소수점 상수인지 확인해야 합니다. 아래 표현식에서 볼 수 있듯이 명시적인 유형 변환을 사용하면 원하는 정밀도를 얻을 수 있습니다.

  • 3.0 / 10.0
  • 3.0 / 10
  • 3 / 10.0

또는 정수 피연산자를 변환할 수 있습니다. 명시적으로 float64로 변환:

  • float64(i3) / 10
  • 3 / float64(i10)

이러한 수정으로 인해 작업에서 부동 소수점을 사용하게 되었습니다. 산술적으로 의도한 결과를 산출합니다. 0.3.

따라서 Go에서 산술 연산을 수행할 때 사용되는 상수 유형에 유의하세요. 나누기와 관련된 이러한 특정 문제를 방지하려면 피연산자가 명시적인 부동 소수점 상수이거나 명시적인 유형 변환을 float64로 수행하는지 확인하세요.

위 내용은 Go Division이 0.3 대신 0을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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