2017-10-06 4 views
0

Pourquoi est-ce que dans la première ligne septTwelfths évaluera à la réponse attendue (0.5833), mais troisTwentySixths évaluera à zéro? J'ai supposé que puisque le type de données est un double, l'opération de diviser 3 par 26 serait une décimale, mais il semble que l'opération soit une opération entière et recouvre ensuite cette réponse à un double et la stocke dans trois vingt-sixixixièmes.Les opérations mathématiques sont-elles différentes pour différents types de données?

double sevenTwelfths = ((double) 7/12); 
    double threeTwentySixths = 3/26; 
+0

Oui, ils sont différents. int/int -> int. double/int -> double. –

Répondre

0

double sevenTwelfths = ((double) 7/12);

En première ligne ce qui signifie que vous transtypage appelé convertissez votre réponse dans le double par exemple

int sevenTwelfths = ((int) 7/12)); cette moyenne après la division 7/12 tout ce qui est l'anser converti en int ou le type cast en int