> Java > java지도 시간 > 불필요한 후행 0을 제거하고 정확한 형식을 사용하여 Java에서 Double을 인쇄하려면 어떻게 해야 합니까?

불필요한 후행 0을 제거하고 정확한 형식을 사용하여 Java에서 Double을 인쇄하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-31 13:41:11
원래의
614명이 탐색했습니다.

How Can I Print Doubles in Java with Precise Formatting, Eliminating Unnecessary Trailing Zeros?

Java에서 부동 숫자를 정밀도 있게 인쇄

64비트 double이 범위 내의 정수를 정확하게 표현하는 기능을 고려할 때 혼합 정수와 혼합 정수를 인쇄할 때 문제가 발생합니다. 이중 값. String.format("%f")은 가까운 형식을 제공하지만 작은 값에 대해 불필요한 후행 0을 추가합니다.

해결책 찾기:

목표는 인쇄하는 것입니다. 실제 double에 대해 높은 정밀도를 유지하면서 소수점 0 없이 double로 저장된 정수 값입니다. 예를 들어, 다음과 같은 경우 입력:

  • 232.00000000
  • 0.18000000000
  • 1237875192 .0
  • 4.5800000000
  • 0.00000000
  • 1.23450000

원하는 출력은 be:

  • 232
  • 0.18
  • 1237875192
  • 4.58
  • 0
  • 1.2345

효율적 형식 지정:

형식을 최적화하기 위해 정수 값이 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);
}
로그인 후 복사

설명:

  • 정확하게 표현할 수 있는 정수 값의 경우 double로, 코드는 이를 long으로 변환하고 %d를 사용하여 형식을 지정합니다. 이렇게 하면 불필요한 후행 0이 제거됩니다.
  • 정수가 아닌 값의 경우 코드는 %s를 사용하여 최소한의 정밀도로 원래 double 값을 유지합니다.

결과:

예제 입력에 적용하면 출력이 원하는 형식과 일치합니다.

232
0.18
1237875192
4.58
0
1.2345
로그인 후 복사

위 내용은 불필요한 후행 0을 제거하고 정확한 형식을 사용하여 Java에서 Double을 인쇄하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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