Maison > Java > javaDidacticiel > Comment convertir float en long ou int en Java ? (avec code)

Comment convertir float en long ou int en Java ? (avec code)

不言
Libérer: 2019-03-07 16:00:32
avant
10914 Les gens l'ont consulté

Le contenu de cet article explique comment convertir float en long ou int en Java ? (Le code est ci-joint), qui a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

En Java, il existe trois façons de convertir float en long ou int, mais nous nous concentrons uniquement sur la partie du type de données long.

La première façon de convertir un type de données float en une valeur longue consiste à convertir la primitive float de boîte automatique en un objet float et à appeler la méthode longValue().

Il s'agit d'une approche plus structurée car les autres méthodes convertissent simplement le float en long ou int pour supprimer le point décimal.

Vous pouvez également écrire un programme Java selon les conseils suivants pour convertir float en int en remplaçant la méthode long par la méthode int correspondante.

Alternativement, vous pouvez utiliser Math.round() puis le reconvertir en type de données long.

La deuxième méthode est la plus simple si vous supprimez simplement les nombres après la virgule décimale, mais si vous devez arrondir, la troisième méthode est la meilleure pour convertir le type de données float en long.

Dans cet article, vous apprendrez trois façons d'effectuer une conversion float en long en Java.

3 façons de convertir float en long en Java

Option 1 - Casting

Java prend en charge la conversion de type, qui consiste à convertir un type de données A est converti en un autre type de données, mais seule une valeur supérieure peut être convertie en une valeur inférieure. Puisque float a une portée plus longue que long, vous pouvez utiliser un transtypage pour le convertir en long comme ceci :

float number = 444.33f; 
long aValue = (long) number; // 444
Copier après la connexion

Il ne fera rien d'autre que supprimer la valeur après la virgule décimale, donc il être dansfromFloat La valeur de 3 est obtenue dans la variable.

Si vous souhaitez convertir float en int, vous devez alors convertir float en entier au lieu de long. C'est la méthode de conversion la plus simple.

Solution 2 - Float.longValue

Une autre façon de convertir float en long consiste d'abord à charger automatiquement la valeur float dans un objet wrapper Float, puis à appeler la méthode Float.longValue(). Cette méthode convertit en interne une valeur à virgule flottante en valeur longue, comme indiqué dans l'image ci-dessus et le code ci-dessous :

public long longValue(){
 return(long)value;
}
Copier après la connexion

Voici comment convertir à l'aide de cette méthode :

Float PIE = 3.14f; 
long fromFloat = PIE.longValue();
Copier après la connexion

Quand Cette méthode est plus appropriée lorsque vous avez un objet Float plutôt qu'une valeur primitive float.

Solution 3 - Math.round et Casting

Parfois, la conversion n'est pas aussi simple que de supprimer ce qui se trouve après la virgule décimale. Un arrondi peut être nécessaire avant la conversion. Si tel est le cas, vous pouvez utiliser la méthode Math.round() pour effectuer d'abord l'arrondi, puis effectuer une conversion de type pour convertir le double en long. La méthode Math.round() renvoie une valeur double. Voici l'exemple de code pour réaliser cette conversion :

// 使用Math.round()并强制转换为long
float points = 333.322f;
long rounded = Math.round(points); 
System.out.printf("float : %f, long : %d %n", points, rounded); 
points = 333.922f; 
rounded = Math.round(points); 
System.out.printf("float : %f, long : %d %n", points, rounded); 
Output : float : 333.321991, long : 333 float : 333.921997, long : 334
Copier après la connexion

Vous pouvez voir l'effet de l'arrondi, dans le premier exemple, le float est arrondi à l'inférieur, c'est pourquoi la valeur longue convertie est 333, alors que dans le deuxième exemple, il est arrondi, c'est pourquoi la valeur longue est 334.

Programme Java pour convertir float en type de données long

ci-dessous Comme indiqué dans le code, il combine trois méthodes pour convertir float en long. Vous pouvez voir comment ils fonctionnent et apprendre à effectuer une autre technique de conversion similaire telle que float en int, short ou byte ou double en long, int, short et byte.

/** 
* 用于在Java中将float转换为long
* 
* @author Javarevisited 
*/ 
public class FloatToLongConverter{ 

 public static void main(String[] args) { 

 // Autobox浮动到Float然后调用Float.longValue();
 Float PIE = 3.14f; 
 long fromFloat = PIE.longValue(); 

 System.out.printf("float value %f, long value %d %n", PIE, fromFloat); 
 
 // 简单的类型转换来消除小数 
 float number = 444.33f; 
 long aValue = (long) number; 
 System.out.printf("float value %f, after casting into long %d %n", number, aValue); 
 
 // 使用Math.round()并将其转换回long 
 float points = 333.322f; 
 long rounded = Math.round(points); 

 System.out.printf("float : %f, long : %d %n", points, rounded); 
 }
 }
Output : 
float value 3.140000, long value 3 
float value 444.329987, after casting into long 444 
float : 333.321991, long : 333
Copier après la connexion

Voici comment convertir float en type de données long en Java. Si vous supprimez simplement les valeurs décimales, la conversion de type est le moyen le plus simple. Ce n'est pas la seule façon d'arrondir les nombres en Java, mais cela fonctionne dans la plupart des cas.

Si vous souhaitez apprendre plus rapidement et plus systématiquement, venez rejoindre le chat de groupe, qui comprend Alibaba, les questions d'entretien Baidu, l'ingénierie Java, la haute performance et la distribution, les microservices, le réglage des performances Spring, MyBatis, l'explication des connaissances des points tels que l'analyse du code source Netty [Java Architect Resource Sharing Group] (numéro de groupe 142019080), cliquez directement sur le lien pour rejoindre le groupe. https://jq.qq.com/?_wv=1027&k=5lXBNZ7

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal