fmt.Printf\의 %g 형식은 선행 0을 처리할 때 너비 및 정밀도 필드를 어떻게 처리합니까?

Mary-Kate Olsen
풀어 주다: 2024-10-26 10:35:30
원래의
331명이 탐색했습니다.

How does fmt.Printf's %g format handle width and precision fields when dealing with leading zeroes?

%g에 대한 너비 및 정밀도 필드가 있는 fmt.Printf의 동작

fmt.Printf에서 부동 소수점에 대한 %g 형식 값은 너비와 정밀도를 모두 지정할 때 유연성을 제공합니다. 그러나 이러한 필드를 조합하여 사용할 때 고려해야 할 미묘한 차이가 있습니다.

정밀도 및 총 자릿수

다른 부동 소수점 형식(%f 및 %e)과 달리, %g의 경우 정밀도 필드는 소수점 이하의 총 자릿수를 지정합니다(선행 0과 지수 제외). 예를 들어, %.4g는 앞에 오는 0에 관계없이 총 4자리를 보장합니다.

앞에 오는 0과 최소 너비

앞에 오는 0은 정밀도를 위해 숫자로 계산됩니다. 단, 최소폭 계산에서는 제외됩니다. 최소 너비는 전체 필드 너비를 결정하며 width 필드(예: g)를 사용하여 설정됩니다.

.9g의 작동 방식

특정 사례에서 .9g는 총 9자리(선행 0 제외) 및 최소 너비 10자를 지정합니다.

  • 0.0606060606060606의 경우 선행 0이 없는 9자리는 0.0606060606을 제공합니다. 최소 너비 10을 충족합니다.
  • 0.3333333333333333의 경우 앞에 0이 없는 9자리는 0.333333333을 제공하며, 또한 최소 너비를 충족합니다.
  • 0.05의 경우 앞에 0이 없는 9자리는 0.05를 제공하므로 부족합니다. 최소 너비 10이므로 나머지 6자를 채우기 위해 채워집니다.
  • 0.4에도 동일하게 적용됩니다.
  • 0.1818181818181818의 경우 앞에 0이 없는 9자리 숫자는 0.181818182(반올림 포함)가 됩니다. 이는 다시 최소 너비를 충족합니다.

요약하면 입력 값의 출력이 달라지는 것은 정밀도(표시되는 자릿수 결정)와 최소 너비(표시되는 자릿수 보장) 간의 상호 작용으로 인해 발생합니다. 특정 필드 너비).

위 내용은 fmt.Printf\의 %g 형식은 선행 0을 처리할 때 너비 및 정밀도 필드를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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