64비트 double이 범위 내의 정수를 정확하게 표현하는 기능을 고려할 때 혼합 정수와 혼합 정수를 인쇄할 때 문제가 발생합니다. 이중 값. String.format("%f")은 가까운 형식을 제공하지만 작은 값에 대해 불필요한 후행 0을 추가합니다.
해결책 찾기:
목표는 인쇄하는 것입니다. 실제 double에 대해 높은 정밀도를 유지하면서 소수점 0 없이 double로 저장된 정수 값입니다. 예를 들어, 다음과 같은 경우 입력:
원하는 출력은 be:
효율적 형식 지정:
형식을 최적화하기 위해 정수 값이 64비트 double로 정확하게 표현될 수 있다는 사실을 활용할 수 있습니다. 다음 Java 코드 조각은 성능 집약적인 문자열 조작에 의존하지 않고 이를 달성합니다.
public static String fmt(double d) { if (d == (long) d) return String.format("%d", (long) d); else return String.format("%s", d); }
설명:
결과:
예제 입력에 적용하면 출력이 원하는 형식과 일치합니다.
232 0.18 1237875192 4.58 0 1.2345
위 내용은 불필요한 후행 0을 제거하고 정확한 형식을 사용하여 Java에서 Double을 인쇄하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!