>백엔드 개발 >Golang >golang float转string

golang float转string

WBOY
WBOY원래의
2023-05-10 20:38:353183검색

Go 언어는 단순성, 효율성 및 보안으로 인해 비교적 젊은 프로그래밍 언어로 프로그래머들 사이에서 점점 인기가 높아지고 있으며 웹 애플리케이션, 네트워크 프로그래밍, 클라우드 컴퓨팅, 빅 데이터 및 기타 분야에서 널리 사용됩니다. Go 언어에서는 소수 및 부동 소수점 값을 나타내는 데 부동 소수점 유형 데이터가 자주 사용됩니다. 부동 소수점 형식의 데이터를 문자열 형식으로 변환해야 할 경우 관련 함수를 사용해야 합니다.

  1. strconv 패키지의 Float64Tostring 함수
    Go 언어에서는 "strconv" 패키지의 "FormatFloat" 함수를 사용하여 64비트 부동 소수점 실수를 문자열로 변환할 수 있으며, 소수점 이하 n자리 유지, 지수 표기 등과 같은 변환 형식

함수 서명: func FormatFloat(f float64, fmt byte, prec, bitSize int) string

그 중 매개변수 f는 변환할 부동 소수점 수, fmt는 변환 형식, 'f'는 10진수 표현을 나타냅니다. , 'e' 과학적 표기법을 나타내고, 'E'는 과학적 표기법을 나타내고, prec는 소수점 이하의 정밀도를 나타내며, bitSize는 숫자 형식(32 또는 64비트)의 자릿수를 나타냅니다.

예제 코드:

package main

import "fmt"
import "strconv"

func main() {

num := 3.141592654
str := strconv.FormatFloat(num, 'f', 2, 64)
fmt.Println("转换后的字符串为:", str)

}

출력:

변환된 문자열은 3.14

이 예에서는 부동 소수점 숫자 3.141592654를 정밀도 2의 문자열로 변환하고 결과를 출력합니다. 이때 출력 결과는 3.14이다.

  1. fmt.Sprintf 함수를 직접 사용하세요
    코드를 작성할 때 fmt.Sprintf 함수를 사용하여 float 유형을 string 유형으로 변환할 수도 있습니다. %f 자리 표시자는 float 유형 데이터의 출력을 나타내기 위해 이 함수의 형식 문자열에 사용됩니다.

예제 코드:

package main

import "fmt"

func main() {

num := 1.61803398875
str := fmt.Sprintf("%f", num)
fmt.Println(str)

}

출력:

1.618034

이 예에서는 부동 소수점 숫자에 fmt를 사용합니다. Sprintf 함수는 문자열 유형으로 변환하여 결과를 출력합니다. 결과는 float64 값의 기본 형식과 동일합니다.

  1. strconv.FormatFloat()는 strconv.AppendFloat()과 함께 사용됩니다
    float64 유형을 문자열 유형으로 변환해야 하는 경우 문자열의 저장을 고려해야 합니다. 문자열을 사용하려면 strconv를 사용할 수 있습니다. AppendFloat()는 일부 문자열 복사 및 추가 작업을 방지합니다. 여기에는 약간의 이해가 필요합니다.

반환된 []바이트 유형은 w의 다음 채울 수 있는 위치로 사용됩니다. 메모리 할당을 방지하려면 w.Grow(n)을 미리 호출하세요. 여기서 n은 쓸 총 바이트 수 또는 최대 숫자 너비 + 1(예: 올바른 정렬과 소수점 추가의 총 숫자 너비의 조합)입니다. )

w는 io.Writer를 구현하는 인스턴스입니다.

fn의 문자열 표현은 소수점 이하 자릿수가 prec인 fmt 형식을 기반으로 합니다(-1은 가장 적은 자릿수를 사용함을 의미함). 특히 다음 형식 설명자 %v 및 %e는 모두 여기서 과학적 표기법을 사용합니다. 부동 소수점 상수에 의해 가역성이 보장되는 가장 작은 수는 Float32bits(-1

f 값의 숫자가 아닌 동작은 fmt.Fprintf와 정확히 동일합니다.

샘플 코드:

package main

import "strconv"

func main() {

num := 3.141592653
b := make([]byte, 0, 64)
b = strconv.AppendFloat(b, num, 'f', -1, 64)

}

이 예에서는 부동 소수점 숫자 3.141592653을 문자열 유형으로 변환하여 b[]에 저장합니다. 바이트형 변수. 이때 소수점 이하 자릿수는 -1, 즉 최소 자릿수를 사용하여 값을 표현한다는 점에 유의해야 한다.

float-to-string 알고리즘을 정확하게 제어하려면 Golang 표준 라이브러리 math/big에 대해 알아보세요.

요약:
Go 언어에서는 float 유형 데이터를 문자열 유형 데이터로 변환하는 세 가지 주요 방법이 있습니다. strconv 패키지의 fmt.FormatFloat 함수 사용, fmt.Sprintf 함수 사용, strconv.FormatFloat() 및 strconv.AppendFloat()가 조합되어 사용됩니다. strconv 패키지의 함수를 사용하여 형식을 사용자 정의할 수 있습니다. fmt.Sprintf 함수를 사용하는 것은 편리하고 간단합니다. strconv.AppendFloat()와 함께 strconv.FormatFloat()를 사용하면 문자열 복사 및 추가 작업이 줄어들고 문자열 처리 속도가 향상됩니다. . 정밀도 계산 및 사용 중에는 부동 소수점 숫자 변환, 특히 더 큰 범위의 부동 소수점 숫자로 인해 발생하는 오류를 방지하도록 주의해야 합니다.

위 내용은 golang float转string의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.