Rumah >pembangunan bahagian belakang >Golang >pembahagian integer golang

pembahagian integer golang

WBOY
WBOYasal
2023-05-19 10:15:371339semak imbas

Golang ialah bahasa pengaturcaraan yang cekap dan moden dengan ciri konkurensi yang sangat baik dan jenis data terbina dalam, termasuk jenis integer. Integer ialah jenis data asas yang mewakili integer tanpa tempat perpuluhan.

Di Golang, pembahagian integer ialah operasi biasa, tetapi semasa penggunaan, anda kadangkala menemui beberapa hasil yang pelik. Artikel ini akan menumpukan pada peraturan operasi dan masalah biasa pembahagian integer di Golang, dan menyediakan beberapa penyelesaian.

1. Jenis integer Golang

Jenis integer dalam Golang termasuk int, int8, int16, int32, int64 dan jenis integer tidak bertanda yang sepadan uint, uint8, uint16, uint32, uint64. Antaranya, int dan uint menduduki 4 bait (32 bit) dalam sistem pengendalian 32-bit dan 8 bait (64 bit) dalam sistem pengendalian 64-bit. Apabila anda perlu mengetahui saiz integer dengan jelas, adalah disyorkan untuk menggunakan int32, int64, uint32, uint64 dan jenis lain.

2. Peraturan operasi pembahagian integer

Di Golang, simbol operasi pembahagian integer ialah "/", dan peraturan operasinya adalah seperti berikut:

1 operan adalah semua integer, hasil operasi bahagi ialah hasil bahagi integer, dengan bahagian perpuluhan ditinggalkan.

Contohnya:

a := 5
b := 2
c := a / b

Pada masa ini, nilai c ialah 2, kerana 5/2 bersamaan dengan 2.5, dan bahagian perpuluhan ditinggalkan.

2. Jika kedua-dua operan adalah jenis titik terapung, hasil operasi bahagi ialah hasil bahagi terapung, mengekalkan bahagian perpuluhan.

Contohnya:

a := 5.0
b := 2.0
c := a / b

Pada masa ini, nilai c ialah 2.5, kerana 5.0/2.0 bersamaan dengan 2.5, dan bahagian perpuluhan dikekalkan.

3. Apabila satu operan ialah integer dan satu lagi ialah nombor titik terapung, Golang akan menukar integer menjadi nombor titik terapung untuk operasi dan mengekalkan bahagian perpuluhan dalam keputusan akhir.

Contohnya:

a := 5
b := 2.0
c := a / b

Pada masa ini, nilai c ialah 2.5, kerana 5 akan ditukar kepada 5.0, dan kemudian dibahagikan dengan 2.0 untuk mendapatkan 2.5.

3. Masalah biasa dengan pembahagian integer di Golang

1 Pembahagian integer dengan nombor titik terapung akan mendapat keputusan yang salah

Memandangkan pembahagian integer menghilangkan bahagian perpuluhan, Oleh itu, apabila. melakukan pembahagian integer dan operasi titik terapung, keputusan yang salah akan diperolehi. Contohnya:

a := 5
b := 2.0
c := a / b

Dalam kod di atas, nilai c ialah 2, yang berbeza daripada 2.5 yang kami jangkakan. Cara untuk menyelesaikan masalah ini ialah menukar integer kepada nombor titik terapung dan kemudian melakukan operasi:

a := 5
b := 2.0
c := float64(a) / b

2 Membahagikan integer dengan 0 akan menyebabkan ralat masa jalan

Di Golang, membahagikan integer dengan 0 akan menyebabkan ralat masa jalan, contohnya:

a := 5
b := 0
c := a / b

Kod di atas akan membuang ralat "ralat masa jalan: integer bahagi dengan sifar".

Untuk mengelakkan situasi ini, anda boleh menentukan sama ada pembahagi adalah 0 sebelum melakukan operasi bahagi:

a := 5
b := 0
if b == 0 {
    // 处理除数为0的情况
} else {
    c := a / b
}

Atau gunakan jenis nombor titik terapung, kerana pembahagian dengan 0 tidak akan menyebabkan ralat masa jalan . , jadi kod boleh berjalan dengan betul.

3. Pembahagian integer akan dibundarkan kepada 0

Bahagian integer di Golang akan dibundarkan kepada 0, yang bermaksud bahawa ia hanya mengekalkan bahagian integer dan membuang bahagian perpuluhan tanpa melakukan Round atau round up.

Contohnya:

a := 5
b := 3
c := a / b

Dalam kod di atas, nilai c ialah 1, bukan 2, kerana pembahagian integer akan dibundarkan kepada 0.

4. Ringkasan

Pembahagian integer ialah operasi biasa, dan ia juga mempunyai ciri uniknya di Golang. Kita perlu memberi perhatian kepada peraturan operasi dan masalah biasa yang mungkin timbul dalam pembahagian integer, dan mengambil penyelesaian yang sepadan.

Atas ialah kandungan terperinci pembahagian integer golang. 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
Artikel sebelumnya:komen struct golangArtikel seterusnya:komen struct golang