Rumah  >  Artikel  >  pembangunan bahagian belakang  >  titik terapung golang kepada integer

titik terapung golang kepada integer

WBOY
WBOYasal
2023-05-12 21:33:071495semak imbas

Golang ialah bahasa pengaturcaraan berprestasi tinggi yang menyokong berbilang jenis data, termasuk nombor titik terapung dan integer. Dalam pembangunan sebenar, kadangkala kita perlu menukar nombor titik terapung kepada integer untuk beberapa pengiraan dan pemprosesan. Artikel ini akan memperkenalkan kaedah dan teknik menukar nombor titik terapung kepada integer di Golang.

  1. Paksaan

Paksa boleh digunakan dalam Golang untuk menukar nombor titik terapung kepada integer. Contohnya:

f := 3.14
i := int(f)

Dalam contoh ini, kita menukar titik terapung nombor 3.14 kepada integer, menghasilkan nilai integer 3. Perlu diingat bahawa penukaran jenis cast akan membuang bahagian perpuluhan dan hanya mengekalkan bahagian integer. Jika kita membuang nombor negatif, bahagian perpuluhan akan dibundarkan ke arah sifar. Contohnya:

f := -3.14
i := int(f)

Dalam contoh ini, nilai i ialah -3, bukan -4. Ini kerana pelakon membundarkan bahagian pecahan ke arah sifar dan bukannya membulatkan.

  1. fungsi pakej matematik

Pakej matematik di Golang menyediakan beberapa fungsi untuk menukar nombor titik terapung kepada integer, seperti Bulat, Siling dan Lantai. Fungsi ini boleh membulatkan, membulatkan atau membulatkan ke bawah mengikut keperluan. Contohnya:

f := 3.14
i := int(math.Round(f))
j := int(math.Ceil(f))
k := int(math.Floor(f))

Dalam contoh ini, kita menggunakan fungsi Bulat untuk membundarkan titik terapung nombor 3.14 kepada integer terdekat, mendapatkan nilai integer 3 kita menggunakan fungsi Siling untuk membundarkan titik terapung nombor 3.14 ke atas , mendapatkan nilai integer 4; Gunakan fungsi Floor untuk membundarkan titik terapung nombor 3.14 untuk mendapatkan nilai integer 3.

Perlu diambil perhatian bahawa fungsi ini semua mengembalikan nilai jenis float64, yang perlu ditukar kepada integer menggunakan cast.

  1. fungsi pakej strconv

Pakej strconv dalam Golang menyediakan beberapa fungsi untuk menukar antara jenis rentetan dan angka. Antaranya, fungsi Atoi dan ParseInt boleh menukar nombor jenis rentetan kepada jenis integer. Contohnya:

s := "123"
i, _ := strconv.Atoi(s)
j, _ := strconv.ParseInt(s, 10, 0)

Dalam contoh ini, kami menggunakan fungsi Atoi untuk menukar rentetan "123" kepada jenis integer dan mendapatkan nilai integer 123 kami juga boleh menggunakan fungsi ParseInt untuk menukar rentetan " 123" kepada jenis integer, Parameter radix ialah 10, yang bermaksud perpuluhan, dan parameter bitSize, iaitu 0, bermakna jenis integer ditentukan secara automatik. Perlu diingatkan bahawa fungsi ParseInt juga boleh menukar rentetan kepada integer dalam asas lain, seperti perenambelasan, perlapanan, dsb.

  1. Kawalan nombor perpuluhan

Apabila menukar nombor titik terapung kepada integer, anda perlu memberi perhatian kepada isu ketepatan. Oleh kerana nombor titik terapung adalah anggaran apabila disimpan dalam komputer, mungkin terdapat ralat ketepatan. Jika ralat semasa menukar nombor titik terapung kepada integer melebihi bilangan digit dalam bahagian integer, hasilnya mungkin tidak tepat. Contohnya:

f := 1.0000000009
i := int(f)

Dalam contoh ini, titik terapung nombor 1.0000000009 diwakili sebagai 1.0000000009000001 dalam Golang, dan apabila ditukar kepada integer, nilai integer 1 diperoleh, bukan 2. Ini kerana ralat ketepatan melebihi bilangan digit dalam bahagian integer.

Untuk mengelakkan situasi ini, anda boleh mengurangkan ralat ketepatan dengan mengawal bilangan titik perpuluhan. Contohnya:

f := 1.0000000009
f = math.Round(f*1000000000) / 1000000000
i := int(f)

Dalam contoh ini, kita mengawal bilangan titik perpuluhan dalam 9 digit dan menggunakan matematik berikut. Fungsi bulat untuk membundarkan titik terapung nombor 1.0000000009 ke tempat perpuluhan terdekat untuk mendapatkan titik terapung nilai 1.000000001 Dan tukarkannya kepada jenis integer, dapatkan nilai integer 1. Dengan cara ini, adalah mungkin untuk mengelakkan ralat ketepatan melebihi bilangan digit dalam bahagian integer sambil mengekalkan ketepatan yang tinggi.

Ringkasan

Apabila menukar nombor titik terapung Golang kepada integer, anda boleh menggunakan penukaran jenis paksa, fungsi pakej matematik, fungsi pakej strconv, dsb. Anda perlu memberi perhatian kepada isu ketepatan, mengawal bilangan titik perpuluhan untuk mengurangkan ralat, dan memilih kaedah dan fungsi yang sesuai untuk meningkatkan kebolehbacaan dan prestasi kod.

Atas ialah kandungan terperinci titik terapung golang kepada integer. 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