고정 너비 및 유효 자릿수를 사용하여 Float64 숫자 인쇄
고정 너비 12자로 테이블에 float64 숫자를 인쇄해야 한다고 상상해 보세요. 가능한 최대 유효 자릿수. 다음 예를 고려하십시오.
fmt.Printf("%12.6g\n", 9.405090880450127e+119) //"9.40509e+119" fmt.Printf("%12.6g\n", 0.1234567890123) //" 0.123457" fmt.Printf("%12.6g\n", 123456789012.0) //" 1.23457e+11"
보시다시피 .6g 형식 지정자를 사용하는 기본 fmt.Printf 함수는 유효 숫자를 자르거나 과학적 표기법을 사용하여 정밀도가 손실될 수 있습니다. 표준 라이브러리 함수를 사용하여 원하는 형식을 얻을 수 있는 방법이 있습니까?
구조에 대한 사용자 정의 형식
우리의 요구 사항을 정확히 충족하는 간단한 표준 라이브러리 기능은 없습니다. 그러나 원하는 너비와 최대 유효 자릿수를 고려하는 사용자 정의 형식 지정 기능을 개발할 수 있습니다. 이에 접근하는 방법은 다음과 같습니다.
다음은 구현 예입니다. Go:
import ( "fmt" ) func format12(x float64) string { if x >= 1e12 { exp := fmt.Sprintf("%.g", x) return fmt.Sprintf("%%12.%dg", 12-len(exp)) } s := fmt.Sprintf("%.0f", x) if len(s) == 12 { return s } return fmt.Sprintf("%%%d.%df", len(s), 12-len(s)-1) }
다양한 float64 값으로 이 함수를 테스트하면 다음과 같은 결과가 나옵니다.
0.0000000000 0.1234567890 1234.5678901 123456789012 1.234568e+12 9405090880.5 9.405091e+19 9.40509e+119
이는 가능한 최대 유효 숫자를 사용하여 고정 너비로 float64 숫자를 인쇄하는 방법을 보여줍니다. 사용자 정의 서식을 사용하여 숫자를 변환합니다.
위 내용은 고정 너비 및 최대 유효 자릿수를 사용하여 Go에서 Float64 숫자를 인쇄하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!