Comment obtenir le point décimal d'un nombre? Par exemple:
Si j'ai 1,5 comment obtenir le numéro 5?Afficher le point décimal
Répondre
int result = static_cast<int>(fmod(number, 1)*10);
EDIT: ou plus simple et probablement plus rapide:
int result = static_cast<int>(number*10)%10;
EDIT: pour le faire fonctionner aussi pour les nombres négatifs que vous pouvez faire:
int result = abs(static_cast<int>(number*10))%10;
vous m'avez battu à l'heure;) – BlackBear
si nous ne connaissons pas la position du point décimal, je veux dire comment résoudre ce problème en général pour un numéro de float donné comme 12.76, 164.7, 8759.128756, etc? – Rasoul
@Rasoul: La solution fonctionne dans toutes les situations, elle vous donne toujours le premier chiffre décimal. –
Supposons que vous avez x=234.537
floor(x*10)
vous donne 2345
vous alors besoin juste pour obtenir le reste d'une division par 10
Alors:
int firstDecimal = floor(x*10)%10
'int firstDecimal = floor (x * 10)% 10' ne compilera même pas. 'floor' est de type virgule flottante, mais'% 'requiert non-float (int, unsigned, etc.). –
Je ne donnais pas de réponse spécifique à la langue. Cela peut être utilisé dans presque toutes les langues. Vous pourriez avoir besoin d'un cast en C++. – nico
Il y a une façon simple et agréable de le faire.
int GetFirstDecimalPlace(float f)
{
const float dp = f - floorf(f); // This simply gives all the values after the
// decimal point.
return static_cast<int>(dp * 10.0f); // This move the value after the decimal
// point to before it and then casts to an
// int losing all other decimal places.
}
Une façon de travailler avec des nombres négatifs en utilisant aucune macro/appels de fonction:
n < 0 ? (int) (-n * 10) % 10 : (int) (n * 10) % 10
Trop compliqué. Peut être 'static_cast
Vous avez raison, de cette façon c'est plus simple. Et il n'y a aucune raison de ne pas tous les abs() sauf peut-être pour des raisons de performance, mais c'est négligeable. Je voulais juste montrer un moyen de le faire en utilisant des outils fournis par le langage, pas la bibliothèque. Une raison d'utiliser static_cast
Merci pour votre réponse. La raison de l'utilisation de static_int au lieu de just (int) est de marquer des endroits dans le programme où des lancements explicites sont effectués. Cela est fait pour des raisons de lisibilité. –
- 1. Afficher le point décimal avec NSString stringWithFormat dans l'objectif C
- 2. Utilisation de MaskedEditExtender avec le point décimal
- 3. point décimal dans SQL Server
- 4. Format double sans point décimal
- 5. chaîne sans point à décimal
- 6. comment puis-je limiter une zone de texte pour afficher 2 chiffres après le point décimal?
- 7. zéros NSDecimalNumber suivants point décimal (iPhone SDK)
- 8. Floating Point Numeric - Numéro décimal SAS
- 9. Comment donner un chiffre de sélection après le point décimal?
- 10. Ajustement du point décimal pour chaîne dans l'iPhone
- 11. Est-il possible d'utiliser String.format pour un point décimal conditionnel?
- 12. Comment est-ce que je peux déplacer le point décimal aux 100èmes d'un nombre entier?
- 13. Problème de point décimal sur l'application de cacao
- 14. Clavier iPhone avec 0-9 et point décimal?
- 15. limitation des chiffres du point décimal en C++
- 16. Pourquoi ai-je un point décimal dans mes nombres BigInt?
- 17. Interprétation du point décimal dans les calculs arithmétiques dans Vim
- 18. Expression régulière pour 1-50 sans point décimal
- 19. par un certain nombre de Split point décimal en php
- 20. Asp.Net Comment ajouter un point décimal à une chaîne
- 21. Afficher uniquement les valeurs à droite d'un nombre décimal
- 22. Obtenir la partie décimale d'un nombre et le nombre de places après le point décimal (C#)
- 23. asp.net compare les validateurs pour permettre la virgule et le point (les deux!) Comme séparateur décimal
- 24. Stockage Azure: le point décimal est ignoré lors de la sauvegarde
- 25. TextItem dans GWT avec le problème décimal
- 26. Besoin de convertir le double ou le décimal en chaîne
- 27. Motif pour le format décimal
- 28. Séparateur décimal C#?
- 29. Double.TryParse() séparateur décimal d'entrée différent du séparateur décimal système
- 30. Comment utiliser le nombre décimal dans le core-plot?
Désolé, je ne comprends pas la question. Quels sont les types que vous voulez gérer? Vous avez un double, et vous aimeriez la représentation décimale après la virgule dans un int? Vous aimeriez avoir 5 stockés dans un int? Pourquoi 5 et pas 50? – Benoit
@Benoit parce que je suis seulement intéressé par le premier chiffre après le point. –
... Pourquoi auriez-vous besoin du "premier chiffre après le point", mais rien d'autre? –