지수 형식 없이 부동 소수점 숫자를 인쇄하려면 다음과 같이 작성할 수 있습니다.
print('%f' % (10**-8))
그러나 이것은 일반적으로 정밀도 오류로 인해 0을 표시합니다. 대신, 우리는 사용할 수 있습니다Decimal.decimal(부동 소수점)
부동 소수점 숫자를 정확하게 인쇄합니다. 그러나 지수 형식으로 숫자를 인쇄합니다.10e-10
. 그리고 형식을 지정하는 방법을 모르기 때문에 결합할 수 없는 것 같습니다.소수
내가 사용한 방법처럼'%에프'
부동 소수점 형식을 지정합니다.
내 질문은 이 일을 내가 원하는 방식으로 수행하는 방법입니다.
참고: 여기에 사용된 거듭제곱 -8은 예시일 뿐입니다. 힘은 가변적일 수 있다. 또한 두 숫자의 차이를 고정밀도로 출력할 수 있는지 궁금합니다.
- 답변 # 1
출력:
소수점을 동적으로 지정하려면 다음을 사용할 수 있습니다.
인쇄물:
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