2015-04-06 2 views
0

Je veux calculer la valeur 0.95. Voici ma méthode:Pourquoi je ne peux pas calculer la valeur double?

public static final int VAR = 5; 
private static double getDouble(){ 
     double dis = (double)(VAR/100); 
     dis = (double)(1-dis); 
     return dis; 
} 

Cependant, il produit 1.0 ?? Si je tape le même code dans la méthode principale, j'ai 0,95. Où est mon erreur?

+0

Le résultat d'une division entière sera toujours un entier . Dans votre cas, votre entier est alors converti en un double, faire @kocko recommande de corriger le problème. – npinti

+0

Quel est le type de données de 'VAR' – silentprogrammer

Répondre

6

(5/100) renverra 0, qui sera casté à double comme 0.0.

Il suffit de faire:

double dis = (5d/100); 

Puisque vous avez déclaré VAR = 5, vous devez jeter à double puis faites la division:

double dis = ((double) VAR)/100; 
+0

Merci! Qu'est-ce que j'ai déclaré 5 comme final static int dans le code? Je vais mettre à jour le code réel. – sammy333

+0

Je l'ai mis à jour. Que puis-je faire dans ce cas? – sammy333

+0

@ sammy333, checkout ma mise à jour –