>Java >java지도 시간 >Java 정수 나눗셈에서 1/3이 0인 이유는 무엇입니까?

Java 정수 나눗셈에서 1/3이 0인 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-28 07:49:10240검색

Why Does 1 / 3 Equal 0 in Java Integer Division?

Int Division: 1/3 == 0 뒤에 숨은 진실 공개

Java의 정수 나누기는 특히 다음과 같은 경우 당황스러운 개념이 될 수 있습니다. 소수 값을 포함합니다. 당면한 질문은 0.333이 될 것으로 예상함에도 불구하고 1/3의 결과가 0인 이유입니다...

산술 공개

이 특히 이 경우 피연산자(1과 3)은 모두 정수입니다. 즉, 정수 연산이 기본적으로 사용됩니다. 결과 변수(g)를 double로 선언했음에도 불구하고 나누기 후에 암시적 변환이 발생합니다.

정수 나누기의 복잡성

부동이 아닌 정수 나누기- 포인트 분할, 결과를 0으로 반올림합니다. 나눗셈의 실제 결과인 0.333...은 결과적으로 0으로 내림됩니다. 프로세서는 기본적으로 소수 부분이 없는 것처럼 처리합니다.

부동 소수점 산술: 다른 이야기

두 피연산자가 모두 부동 소수점 숫자(3.0 및 1.0)로 제공되는 경우 부동 소수점 산술이 우선합니다. 결과적으로 예상 분수 값은 0.333입니다.... 첫 번째 피연산자만 부동 소수점(예: 3.0 및 1)인 경우에도 부동 소수점 산술은 계속 사용됩니다.

실용적 해결 방법

십진수 결과를 얻으려면 명시적으로 부동 소수점 나눗셈을 수행해야 합니다. 이는 두 피연산자를 double 또는 float로 캐스팅하여 수행할 수 있습니다.

public static void main(String[] args) {
    double g = (double) 1 / 3; // Explicitly cast to double
    System.out.printf("%.2f", g);
}

또는 더 정확한 숫자 연산을 위해 BigDecimal 클래스를 사용할 수 있습니다.

위 내용은 Java 정수 나눗셈에서 1/3이 0인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.