Comment divisez-vous deux entiers et obtenez une réponse double ou flottante en C?Comment obtenir des fractions dans une division entière?
Répondre
Vous devez convertir l'un ou l'autre en float
ou double
.
int x = 1;
int y = 3;
// Before
x/y; // (0!)
// After
((double)x)/y; // (0.33333...)
x/((double)y); // (0.33333...)
Bien sûr, assurez-vous que vous êtes stocker le résultat de la division dans un double
ou float
! Cela ne vous sert à rien si vous stockez le résultat dans un autre int
.
En ce qui concerne le @ commentaire du Tchad ("[tailsPerField setIntValue:tailsPer]
"):
Ne pas passer un double ou flotter à setIntValue
lorsque vous avez setDoubleValue
, etc. disponibles. C'est probablement le même problème que celui que j'ai mentionné dans le commentaire, où vous n'utilisez pas une distribution explicite, et vous obtenez une valeur invalide parce qu'un double est lu comme un int.
Par exemple, sur mon système, le fichier:
#include <stdio.h>
int main()
{
double x = 3.14;
printf("%d", x);
return 0;
}
sorties:
1374389535
parce que le double était tenté d'être lu comme un entier.
Droite. Convertissez les entiers avant d'effectuer la division. – DOK
double tp; double x; x = tn; // (tn est un int) normalement 10 tp = x/fn; // fn est aussi un int (normalement 5) mais je reçois toujours 0 –
@Chad: Le code semble correct. Comment avez-vous déterminé que le résultat est zéro? Faites-vous quelque chose comme 'printf ("% d ", tp)'? Cela essaie d'imprimer le contenu d'un double comme un int, et vous n'obtiendrez pas les bons résultats. Votre compilateur aurait dû vous prévenir si vous l'aviez fait. Pour un double, la chaîne de format est '% lf'. –
Utiliser le moulage de type. Par exemple,
main()
{
float a;
int b=2, c= 3;
a=(float)b/(float)c; // This is type-casting
printf("%f",a);
}
- 1. Comment faire une division entière en Perl?
- 2. division entière en php
- 3. division entière vs double division - question d'optimisation
- 4. propriétés de division entière
- 5. Division entière en Common Lisp?
- 6. Signé 64 par 32 division entière
- 7. comment écrire une fonction pour implémenter un algorithme de division entière sans utiliser l'opérateur de division dans php
- 8. comment recharger la page entière à travers un bouton placé dans une division en jsp
- 9. Comment stocker des fractions de seconde dans mysql
- 10. Android - l'affichage des fractions en utilisant unicode
- 11. Contraindre un conteneur YUI dans une division
- 12. Comment obtenir mysql gamme entière aléatoire?
- 13. Calcul de la fréquence des fractions dans SAS
- 14. Comment afficher de jolies fractions dans Crystal Reports généré PDF
- 15. Comment obtenir deux décimales de la division dans SQL Server?
- 16. motifs dans les fractions binaires avec python
- 17. Obtention d'élémentById dans une division
- 18. CLR pour les fractions Regex
- 19. Créer un tableau de fractions
- 20. liste Convertir des Fractions à flotteurs en Python
- 21. Regex pour faire correspondre les fractions sloppy/nombres mélangés
- 22. obtenir une erreur de division impair avec PHP number_format()
- 23. Comment obtenir une trace de pile entière dans gdb en un coup?
- 24. Division d'un 'Decimal' dans VB.NET
- 25. Division des données en pages
- 26. Comment marquer une classe entière comme "Inconclusive"?
- 27. Remplacer une ligne entière dans un fichier
- 28. effacer une colonne entière dans l'accès
- 29. Comment puis-je chiffrer une colonne entière
- 30. Comment obtenir la fonction entière à partir d'un fichier
« décimale » est une représentation (comme « hexadécimal », « binaire » « octal ») qui applique à un nombre entier ou non entier. Vous voulez dire, je suppose, "obtenir un résultat non-entier". – leonbloy
Voici comment vous obtenez des fractions (nombres rationnels) avec une division entière 'printf ("% d% d /% d "x/y, x% y, y);'. Êtes-vous sûr de ne pas vouloir un résultat non-entier? – Brendan