Java에서 정수 값(이 경우 long)의 나누기는 정수 산술 규칙을 따르며 결과적으로 정수가 됩니다. 정수를 나눌 때 결과는 음의 무한대로 반올림됩니다. 특히 백분율을 계산하려고 할 때 예상치 못한 결과가 발생할 수 있습니다.
이 문제를 해결하려면 나누기를 수행하기 전에 입력 정수 중 하나 이상을 double(부동 소수점 수)로 변환해야 합니다. 이는 나눗셈을 부동 소수점 연산으로 강제하여 소수 결과를 생성합니다.
double completed = 25000; double total = 50000; double percentage = completed / total; // Prints 0.5 System.out.println(percentage); // Prints 0.5
입력 중 하나를 double로 캐스팅하면 나눗셈 결과도 double이 되어 예상되는 백분율 값을 제공합니다.
처음 시도한 대로(완료/전체) 결과를 변환하는 것만으로는 충분하지 않다는 점에 유의하는 것이 중요합니다. 그 시점에서 정수 나누기가 이미 발생했습니다. 입력을 변환하면 처음부터 적절한 부동 소수점 연산이 사용됩니다.
위 내용은 백분율을 계산할 때 Java의 정수 나누기가 예기치 않은 결과를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!