Maison  >  Article  >  développement back-end  >  golang int casting

golang int casting

WBOY
WBOYoriginal
2023-05-13 10:10:37859parcourir

Dans Golang, le type int est le type entier par défaut, mais dans le programme, vous pouvez rencontrer des situations où int doit être converti, comme la conversion de int en d'autres types entiers, la conversion du type float en type int, etc. Cet article explorera la méthode de coercition de type int dans Golang.

  1. Convertir int en d'autres types entiers

Dans Golang, le type int est par défaut 32 bits (4 octets) ou 64 bits (8 octets), et sa plage de valeurs est respectivement $-2^{31} $ à $2^{31}-1$ et $-2^{63}$ à $2^{63}-1$, selon l'architecture de la machine sur laquelle il s'exécute. Si vous devez convertir le type int en d'autres types entiers (tels que int8, int16, int3, int64, uint8, uint16, uint32, uint64), vous devez l'implémenter via la conversion de type.

La méthode spécifique est la suivante :

var a int = 100
var b int8 = int8(a)   // 将 int 类型转换为 int8 类型
var c int16 = int16(a) // 将 int 类型转换为 int16 类型
var d int32 = int32(a) // 将 int 类型转换为 int32 类型
var e int64 = int64(a) // 将 int 类型转换为 int64 类型
var f uint8 = uint8(a) // 将 int 类型转换为 uint8 类型
var g uint16 = uint16(a) // 将 int 类型转换为 uint16 类型
var h uint32 = uint32(a) // 将 int 类型转换为 uint32 类型
var i uint64 = uint64(a) // 将 int 类型转换为 uint64 类型

Il convient de noter que différentes conversions de types entraîneront des problèmes de perte de précision ou de débordement, et vous devez choisir le type de données approprié en fonction du scénario spécifique.

  1. Convertir le type float en type int

Dans Golang, le type float est utilisé pour stocker les nombres à virgule flottante, et son type par défaut est float64. Si vous devez convertir le type float en type int, vous devez utiliser les méthodes Round(), Floor() ou Ceil() dans le package mathématique fourni par Golang. Ces méthodes peuvent arrondir, arrondir à l'inférieur ou au supérieur le float. taper.

La méthode spécifique est la suivante :

import "math"

var a float64 = 123.56

var b int = int(math.Round(a)) // 四舍五入
var c int = int(math.Floor(a)) // 向下取整
var d int = int(math.Ceil(a))  // 向上取整

Il convient de noter que lors de la conversion de nombres à virgule flottante en types entiers, des problèmes de perte de précision ou de débordement peuvent survenir. Par conséquent, le choix du type de données doit être soigneusement étudié avant la conversion, ainsi que les anomalies pouvant survenir lors du processus de conversion.

  1. Convertir le type int en type chaîne

Dans Golang, pour convertir le type int en type chaîne, vous devez utiliser la méthode Itoa() fournie dans le package strconv. Cette méthode peut convertir un entier de type int en type chaîne correspondant.

La méthode spécifique est la suivante :

import "strconv"

var a int = 123

var b string = strconv.Itoa(a) // 将 int 类型的 a 转换为字符串类型

Il convient de noter que la méthode Itoa() ne peut convertir que le type int en type chaîne et ne peut prendre en charge que les formats entiers standard. Si vous devez convertir des entiers dans d'autres formats en types de chaînes, vous devez utiliser la méthode de sortie formatée fournie par Golang.

Ce qui précède est la méthode de conversion forcée de type int dans Golang. Il est nécessaire de sélectionner le type de données approprié en fonction de la situation spécifique et de gérer avec soin les situations anormales qui peuvent survenir pendant le processus de conversion pour garantir l'exactitude du programme. opération.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn