>source

지수 형식 없이 부동 소수점 숫자를 인쇄하려면 다음과 같이 작성할 수 있습니다.

print('%f' % (10**-8))

그러나 이것은 일반적으로 정밀도 오류로 인해 0을 표시합니다. 대신, 우리는 사용할 수 있습니다Decimal.decimal(부동 소수점)부동 소수점 숫자를 정확하게 인쇄합니다. 그러나 지수 형식으로 숫자를 인쇄합니다.10e-10. 그리고 형식을 지정하는 방법을 모르기 때문에 결합할 수 없는 것 같습니다.소수내가 사용한 방법처럼'%에프'부동 소수점 형식을 지정합니다.

내 질문은 이 일을 내가 원하는 방식으로 수행하는 방법입니다.

참고: 여기에 사용된 거듭제곱 -8은 예시일 뿐입니다. 힘은 가변적일 수 있다. 또한 두 숫자의 차이를 고정밀도로 출력할 수 있는지 궁금합니다.

  • 답변 # 1

    from decimal import Decimal
    print('%.8f' % Decimal(10**-8))
    

    출력:

    0.00000001
    

    소수점을 동적으로 지정하려면 다음을 사용할 수 있습니다.

    from decimal import Decimal
    power= 10
    print('%.*f' % (power, Decimal(10**-power)))
    

    인쇄물:

    0.0000000001
    

    10**-8에 대한 솔루션만 보여주었습니다. 수력이 가변적이라면? 변경되면 어떻게 되나요?

    Meraj al Maksud2022-02-05 16:59:01

    다음 code는 오류를 생성합니다. >>>from decimal import Decimal >>>a= 10**-8 >>>print("%.*f" % Decimal(a)) Traceback(가장 최근 호출 마지막): File " ", 1행, TypeError: *는 int를 원합니다.

    Meraj al Maksud2022-02-05 16:59:01

    @MerajAlMaksudMasuk 형식에 두 개의 숫자(소수점과 숫자)를 지정해야 합니다.

    Andrej Kesely2022-02-05 16:59:01

    % 기반 형식보다 .format 스타일 형식을 사용하는 것이 훨씬 좋습니다. % 기반 형식의 경우 Decimal 인스턴스는 가장 가까운 부동 소수점으로 먼저 변환되어 잠재적으로 반올림 오류가 발생할 수 있습니다. .format 스타일 형식의 경우 형식은 부동 소수점 변환 없이 실제 Decimal 값에 직접 적용됩니다. (파이썬 >= 3.1이라고 가정합니다.)

    Mark Dickinson2022-02-05 17:27:49
  • 이전 javascript : Angular Reactive Forms 유효성 검사의 이상한 오류
  • 다음 Cloud Functions를 사용하여 사용자 카운터 업데이트 문제 비동기 함수 외부에서 'await' 키워드를 사용할 수 없습니다.