Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang float转string

golang float转string

WBOY
WBOYasal
2023-05-10 20:38:353160semak imbas

Bahasa Go ialah bahasa pengaturcaraan yang agak muda Oleh kerana kesederhanaan, kecekapan dan keselamatannya, ia semakin popular di kalangan pengaturcara dan digunakan secara meluas dalam aplikasi web, pengaturcaraan rangkaian, pengkomputeran awan, data besar dan bidang lain. Dalam bahasa Go, data jenis apungan sering digunakan untuk mewakili perpuluhan dan nilai titik terapung. Apabila kita perlu menukar data jenis apungan kepada jenis rentetan, kita perlu menggunakan beberapa fungsi yang berkaitan.

  1. Float64Tostring dalam pakej strconv
    Dalam bahasa Go, anda boleh menggunakan fungsi "FormatFloat" bagi pakej "strconv" untuk menukar nombor nyata titik terapung 64-bit kepada rentetan, dan juga Anda boleh menentukan format penukaran, seperti mengekalkan n digit selepas titik perpuluhan, tatatanda eksponen, dsb.

Tandatangan fungsi: func FormatFloat(f float64, fmt byte, prec, bitSize int) rentetan

Di mana, parameter f ialah nombor titik terapung yang hendak ditukar dan fmt mewakili format penukaran,' f' mewakili perwakilan perpuluhan, 'e' mewakili notasi saintifik, 'E' mewakili notasi saintifik, prec mewakili ketepatan selepas titik perpuluhan, dan bitSize mewakili bilangan digit jenis berangka (32 atau 64 bit ).

Kod contoh:

utama pakej

import "fmt"
import "strconv"

func main() {

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

}

Output:

Rentetan yang ditukar ialah: 3.14

Dalam contoh ini, kami menukar titik terapung nombor 3.141592654 kepada aksara dengan ketepatan 2 rentetan dan keluarkan hasilnya. Hasil keluaran pada masa ini ialah 3.14.

  1. Gunakan fungsi fmt.Sprintf terus
    Apabila menulis kod, kita juga boleh menggunakan fungsi fmt.Sprintf untuk menukar jenis apungan kepada jenis rentetan. Pemegang tempat %f digunakan dalam rentetan format fungsi ini untuk mewakili output data jenis apungan.

Kod sampel:

utama pakej

import "fmt"

func main() {

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

}

Output:

1.618034

Dalam contoh ini, kami menukar nombor titik terapung 1.61803398875 kepada jenis rentetan menggunakan fungsi fmt.Sprintf dan mengeluarkan hasilnya. Hasilnya adalah sama dengan format lalai untuk nilai float64.

  1. strconv.FormatFloat() digunakan dalam kombinasi dengan strconv.AppendFloat()
    Jika anda perlu menukar jenis float64 kepada jenis rentetan, anda perlu mempertimbangkan penyimpanan rentetan. Untuk meningkatkan watak Untuk meningkatkan kelajuan pemprosesan rentetan, anda boleh menggunakan strconv.AppendFloat() untuk mengelakkan beberapa operasi penyalinan dan penambahan rentetan. Sedikit pemahaman diperlukan di sini:

Jenis []bait yang dikembalikan ialah kedudukan boleh diisi seterusnya bagi w. Untuk mengelakkan peruntukan memori, panggil w.Grow(n) lebih awal daripada masa, dengan n ialah jumlah bilangan bait untuk ditulis atau lebar nombor maksimum + 1 (iaitu gabungan jumlah lebar nombor dengan penjajaran yang baik dan menambah titik perpuluhan )

w ialah contoh yang melaksanakan io.Penulis. Perwakilan rentetan

fn adalah berdasarkan format fmt, dengan tempat perpuluhan prak (-1 bermaksud menggunakan digit paling sedikit). Khususnya, deskriptor format berikut %v dan %e kedua-duanya menghasilkan notasi saintifik di sini. Nombor terkecil yang dijamin boleh diterbalikkan oleh pemalar titik terapung boleh diperoleh menggunakan Float32bits (-1<<31) dan Float64bits (-1<<63).

Tingkah laku bukan angka bagi nilai f adalah betul-betul sama seperti fmt.Fprintf.

Kod sampel:

utama pakej

import "strconv"

func main() {

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

}

Dalam contoh ini, kami menukar nombor titik terapung 3.141592653 kepada jenis rentetan dan menyimpannya dalam pembolehubah jenis []bait b. Perlu diingatkan bahawa bilangan tempat perpuluhan pada masa ini ialah -1, iaitu bilangan digit minimum digunakan untuk mewakili nilai.

Jika anda ingin mengawal algoritma apung-ke-rentetan dengan tepat, anda boleh mempelajari tentang matematik/besar perpustakaan standard Golang.

Ringkasan:
Dalam bahasa Go, terdapat tiga cara utama untuk menukar data jenis apungan kepada data jenis rentetan: menggunakan fungsi fmt.FormatFloat dalam pakej strconv, menggunakan fungsi fmt.Sprintf dan menggunakan strconv . FormatFloat() digunakan dalam kombinasi dengan strconv.AppendFloat(). Anda boleh menyesuaikan pemformatan menggunakan fungsi dalam pakej strconv Mudah dan mudah untuk menggunakan fungsi fmt.Sprintf Gabungan strconv.FormatFloat() dan strconv.AppendFloat() boleh mengurangkan operasi penyalinan dan penambahan rentetan. kelajuan pemprosesan. Perlu diingat bahawa semasa pengiraan dan penggunaan ketepatan, penjagaan harus diambil untuk mengelakkan ralat yang disebabkan oleh penukaran nombor titik terapung, terutamanya nombor titik terapung dengan julat yang lebih besar.

Atas ialah kandungan terperinci golang float转string. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn