web-dev-qa-db-fra.com

Conversion double en Int, arrondi au bas

Comment convertir une valeur double en int en procédant comme suit:

Double If x = 4.97542. Convert to int x = 4.

Double If x = 4.23544. Convert to int x = 4.

C'est-à-dire que la réponse est toujours arrondie.

43
Vogatsu

Si vous explicitement castdouble à int, la partie décimale sera tronquée. Par exemple:

int x = (int) 4.97542;   //gives 4 only
int x = (int) 4.23544;   //gives 4 only

De plus, vous pouvez également utiliser la méthode Math.floor() pour arrondir les valeurs au cas où vous voudriez que la valeur double soit renvoyée.

88
waqaslam

Si le double est une Double avec majusculeD(valeur primitive encadrée):

Double d = 4.97542;
int i = (int) d.doubleValue();

// or directly:
int i2 = d.intValue();

Si le double est déjà une primitive double, lancez-le simplement:

double d = 4.97542;
int i = (int) d;
26
Natix
double myDouble = 420.5;
//Type cast double to int
int i = (int)myDouble;
System.out.println(i);

La valeur double est 420.5 et l'application imprime la valeur entière de 420

5
Habib

Une autre option utilisant Double ou double est d'utiliser Double.valueOf(double d).intValue();. Simple et propre

3
Joao Evangelista

Je pense que j'ai eu une meilleure sortie, en particulier pour un tri double type de données.

Bien que cette question ait reçu la réponse, cela aidera peut-être quelqu'un d'autre.

Arrays.sort(newTag, new Comparator<String[]>() {
         @Override
         public int compare(final String[] entry1, final String[] entry2) {
              final Integer time1 = (int)Integer.valueOf((int) Double.parseDouble(entry1[2]));
              final Integer time2 = (int)Integer.valueOf((int) Double.parseDouble(entry2[2]));
              return time1.compareTo(time2);
         }
    });
0
HexxonDiv