Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
We use cookies to ensure that we provide you with the best possible experience on our site.
Votre source incontournable sur Unity et le développement web
Votre source incontournable sur Unity et le développement web
Dans Unity, la conversion d’un nombre à virgule flottante (float) en un entier (int) est une opération courante et peut être effectuée de plusieurs manières.
Cet article vous guidera à travers les différentes fonctions à utiliser pour cette conversion en fonction de votre cas d’utilisation.
Pour aider à la lecture de notre article nous allons remplacer le terme « nombre à virgule flottante » par sa version anglaise « float ».
Pour convertir un float en l’entier le plus petit, vous avez deux options : vous pouvez effectuer une conversion directe (cast) en int ou utiliser la méthode « ToInt32 » de la classe Convert.
Selon vos besoins, vous pouvez également utiliser « ToInt64 » ou « ToInt16 ».
using System;
using UnityEngine;
public class ConvertBehaviour : MonoBehaviour
{
public int CastConvert(float value)
{
return (int)value;
}
public int SystemConvert(float value)
{
return Convert.ToInt32(value);
}
private void Start()
{
Debug.Log(CastConvert(0.5f)); // 0
Debug.Log(CastConvert(0.6f)); // 0
Debug.Log(CastConvert(2f)); // 2
Debug.Log(CastConvert(2.1f)); // 2
}
}
Pour convertir un float en l’entier le plus grand, vous pouvez utiliser la méthode CeilToInt de la classe Mathf.
using UnityEngine;
public class ConvertBehaviour : MonoBehaviour
{
public int CeilToIntConvert(float value)
{
return Mathf.CeilToInt(value);
}
private void Start()
{
Debug.Log(CeilToIntConvert(0.5f)); // 1
Debug.Log(CeilToIntConvert(0.6f)); // 1
Debug.Log(CeilToIntConvert(2f)); // 2
Debug.Log(CeilToIntConvert(2.1f)); // 3
}
}
Pour convertir un float en l’entier le plus proche, vous pouvez utiliser la méthode RoundToInt de la classe Mathf.
Faites attention, si le nombre se termine par .5, donc s’il est à mi-chemin entre deux entiers, l’un pair et l’autre impair, le nombre pair est renvoyé.
using UnityEngine;
public class ConvertBehaviour : MonoBehaviour
{
public int RoundConvert(float value)
{
return Mathf.RoundToInt(value);
}
private void Start()
{
Debug.Log(RoundConvert(0.5f)); // 0
Debug.Log(RoundConvert(0.6f)); // 1
Debug.Log(RoundConvert(2f)); // 2
Debug.Log(RoundConvert(2.1f)); // 2
Debug.Log(RoundConvert(7.5f)); // 8
}
}
Pour convertir un float en un int à utiliser comme une chaîne de caractères, vous pouvez simplement appeler la méthode ToString et spécifier le format « 0 ».
Soyez conscient que cela fonctionnera comme la fonction de l’arrondi, sauf que lorsque le nombre est à mi-chemin entre les deux entiers, il renverra toujours le plus grand.
Consultez la documentation : Le spécificateur personnalisé « 0 »
using UnityEngine;
public class ConvertBehaviour : MonoBehaviour
{
public string ToStringConvert(float value)
{
return value.ToString("0");
}
private void Start()
{
Debug.Log(ToStringConvert(0.5f)); // "1"
Debug.Log(ToStringConvert(0.6f)); // "1"
Debug.Log(ToStringConvert(2f)); // "2"
Debug.Log(ToStringConvert(2.1f)); // "2"
}
}
Je vous laisse également la documentation complète sur les formats ToString.
Si vous avez encore des cas d’utilisation à résoudre, vous voudrez peut-être vous tourner vers la classe « Math », qui propose une méthode « Round » avec plus de paramètres que celle d’Unity.
Il est également possible d’effectuer l’opération inverse : int to float.