int decade; float jeo; PRINT("Enter Decade point =\r\n"); scanf("%d",&decade); print_decimal(decade); PRINT("\r\n"); jeo=(1/(1+decade)); PRINT("Decade point ="); print_decimal(jeo);//my function for showing floating point number. PRINT("\r\n"); I have wrote this code in IAR embedded workbench software for ARM controller, but it's not giving me accurate answer, can anyone tell me why?? "when i am entering 3. it's giving me 0 answer".
3 Réponses :
Vous attribuez le résultat d'un Division entier à Jeo code>. Dans ce cas, si Lorsque le type après les conversions arithmétiques habituelles est un type d'entier, le résultat est le quotient algébrique (pas une fraction), arrondi dans la direction définie par la mise en oeuvre (jusqu'à C99) tronquée vers zéro (depuis C99) P>
blockquote> Faites donc le numérateur ou le dénominateur A décennie code> est un entier autre que 0, le résultat de la division entière sera 0. (Remarque: si
décennie code> est
-1 code >, vous aurez un comportement non défini à la suite de la division par
0 code>)
float code>. p>
jeo=((float)1/float(1+decade);
Au lieu de (flotteur) 1 code> Il sera plus clair à utiliser
1.0f code>. Mais en général doubles devraient être utilisés à moins que vous sachiez que vous avez vraiment besoin d'un flotteur
@Pluclv: d'accord. OP défini jeo code> comme float.
@Ati: vous êtes les bienvenus. Consultez ce lien sur quoi faire lorsque votre question est répondue. Stackoverflow.com/help/someone-answers
Vous faites juste votre calcul avec Essayez ceci: p> entier code> et attribuer ensuite à un
flottant code>. Cela retirera les chiffres après le point décimal.
jeo=(1.0/(1.0+decade));
Essayez ceci Ceci est parce que lorsque vous essayez d'utiliser un entier dans une expression logique comme celle-ci, le résultat est calculé
La division Integer est la question immédiate. Vous avez également un pôle pendant une décennie -1 qui est un comportement indéfini, bien que l'IEEE754 le définit.
Dupliqué possible de Résultat de la division est toujours zéro
Il y a des tonnes de duplicats Division 1 / N renvoie toujours 0.0 , Division entière Toujours zéro , C ++. La division 1 par n'importe quel nombre donne 0 ...