programme java à l'aide de int et double
J'ai écrit un programme Java simple comme illustré ici:
public class Test {
public static void main(String[] args) {
int i1 =2;
int i2=5;
double d = 3 + i1/i2 +2;
System.out.println(d);
}
}
Depuis variable d
est déclarée comme double j'attends le résultat de ce programme est 5.4
, mais j'ai eu de la sortie comme 5.0
Merci de m'aider dans la compréhension de ce.
D'ailleurs, essayez de rechercher avant de poser, à la recherche de java int et double donne stackoverflow.com/questions/6008306/java-int-vs-double comme sa deuxième réponse et stackoverflow.com/questions/12105494/java-double-integer comme sa troisième, les deux exemplaires de cette question
OriginalL'auteur chaitanya | 2013-05-02
Vous devez vous connecter pour publier un commentaire.
i1/i2
sera de 0. Depuisi1
eti2
sont tous les deux des entiers.Si vous avez
int1/int2
, si la réponse n'est pas un idéal entier, les chiffres après le point décimal sera supprimé. Dans votre cas,2/5
est de 0,4, de sorte que vous aurez 0.Vous pouvez lancer
i1
oui2
àdouble
(l'autre sera converti implicitement)double d = 3 + (double)i1/i2 +2;
OriginalL'auteur Maroun
i1/i2
lorsqu'ils sont convertis en int donne 0. c'est à dire. pourquoi vous obtenez 5.0. Essayez ceci :bon,je viens de l'ajouter pour augmenter la lisibilité et la compréhension.
OriginalL'auteur Vineet Singla
Cette ligne est faite en partie:
Le double signifie simplement que la réponse sera converti en double, il n'a aucun effet jusqu'à la réponse est calculée. Vous devriez écrire
OriginalL'auteur Richard Tingle
i1/i2
sera de 0 car les deuxi1
et12
sont des nombres entiers.si vous lancez
i1
oui2
àdouble
il donnera le résultat souhaité.OriginalL'auteur NullPointer
Ce lien fournit des informations sur la conversion de type de données, à la fois implicites et explicites du type.
Pour fournir la réponse exacte à la question :
OriginalL'auteur Madhusudan Joshi
si i1/i2 sera la valeur fractionnaire puis double va l'aider à être dans la fraction au lieu de int.
alors maintenant, vous aurez le résultat que vous souhaitez. ou vous pouvez également utiliser le code suivant
double d = 3+(double)i1/i2+2;
Dans cette ligne i1 est converti en double qui sera divisé en i2 et le résultat sera en double, donc, à nouveau résultat sera que de 5,4
OriginalL'auteur Amit Ranjan
Depuis i1=2 et i2=5 sont de type entier et lorsque vous divisez (2/5), Il donne une valeur entière (0) parce que la partie fractionnaire(.4) se jeter.
Donc, mettre (double)i1/i2 sur l'équation.
OriginalL'auteur Parmanand