Go의 나눗셈: 0.3의 미스터리 이해
Go에서 나눗셈 연산을 수행할 때 0이 아닌 0이라는 예상치 못한 결과가 나올 수 있습니다. 0.3이 예상됩니다. 이 특이한 동작은 연산에서 유형이 지정되지 않은 상수를 사용하기 때문에 발생합니다.
Go에서 이진 연산의 피연산자는 처음에는 유형이 지정되지 않은 상수로 처리됩니다. 결과 연산 유형은 특정 우선 순위를 사용하는 피연산자에 의해 결정됩니다. 3 및 10과 같은 정수 상수의 경우 결과는 유형이 지정되지 않은 정수이므로 0입니다.
부동 소수점 결과를 얻으려면 적어도 하나의 피연산자가 부동 소수점 상수인지 확인해야 합니다. 아래 표현식에서 볼 수 있듯이 명시적인 유형 변환을 사용하면 원하는 정밀도를 얻을 수 있습니다.
또는 정수 피연산자를 변환할 수 있습니다. 명시적으로 float64로 변환:
이러한 수정으로 인해 작업에서 부동 소수점을 사용하게 되었습니다. 산술적으로 의도한 결과를 산출합니다. 0.3.
따라서 Go에서 산술 연산을 수행할 때 사용되는 상수 유형에 유의하세요. 나누기와 관련된 이러한 특정 문제를 방지하려면 피연산자가 명시적인 부동 소수점 상수이거나 명시적인 유형 변환을 float64로 수행하는지 확인하세요.
위 내용은 Go Division이 0.3 대신 0을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!