2016-04-22 5 views
-1

Comme int est moins précis que double Je pensais avoir besoin de le convertir lors de l'analyse d'une méthode. Pourtant, le code suivant fonctionne bien. Pourquoi?Analyser un type de données différent Java

public class MyClass { 

    public static void main(String[] args) { 
     System.out.println(met(3/2)); 
    } 

    static String met(int i){ 
     return "This is what I get " + i; 
    } 

} 
+1

Je ne vois pas de double ici. – rgettman

+1

Je pensais que c'est 3/2 – ocram

+9

'3/2' n'est pas un double. C'est un 'int' avec la valeur de' 1'. '3.0/2.0' est cependant un' double' avec la valeur de '1.5'. – Gendarme

Répondre

1

Lorsque vous faites 3/2 cela ne vous donnera pas un double résultat. La division entière se produit et le résultat est tronqué en un entier. Par conséquent, il n'y a pas besoin de jeter. Afin d'obtenir un résultat double, l'un ou l'autre doit être converti en double afin d'obtenir une erreur de compilateur pour qu'il soit doublé.

Essayez de faire met(3d/2), puis vous exécutez l'erreur de compilation que vous attendez.

+2

@Pillar I mis à jour juste basé sur ce commentaire , car je pense que vous avez dépassé le point de la grossièreté sur combien de s'inquiéter de trouver des doublons. –

+3

@Pillar Je n'ai pas trouvé de doublon et j'espère que quelqu'un le fera bientôt. Merci d'avoir expliqué votre vote négatif au moins contrairement à beaucoup d'autres. Une dernière chose, les choses que vous n'aimez pas ne sont pas des ordures. –