je veux la valeur flottante de 3 chiffres de fraction après le chiffre, je ne veux pas arrondir de la valeur par exemple: float f = 2.13275; je veux f comme 2.132 pas 2.133 comment puis-je le faire en java?valeur flottante troncation java
Répondre
Utilisez la classe DecimalFormat.
C'est la meilleure chose possible, je suppose. –
Cette solution ne sera-t-elle pas arrondie plutôt que tronquée? – Asaph
@Asaph, vous pouvez utiliser différents modes d'arrondi, y compris RoundingMode.FLOOR ou RoundingMode.DOWN. –
Math.floor() enlèvera n'importe quoi après le point décimal sans arrondir. Vous pouvez jouer un tour où vous multipliez par l'ordre de grandeur approprié, plancher le résultat et ensuite diviser par le même ordre de grandeur. Comme ceci:
double f = 2.13275;
double f2 = Math.floor(f * 1000)/1000;
Remarque: la classe Math traite les doubles, pas les flottants. Si veut vraiment veut des flotteurs, vous pouvez faire un peu de coulée, mais il y aura une perte de précision. D'un autre côté, vous ne voulez que 3 décimales, cela ne vous dérangera probablement pas.
Editer: @Jason S signale que les nombres négatifs peuvent avoir leur dernière décimale modifiée. Je ne suis pas sûr si vous le voulez ou si c'est même pertinent dans le contexte de votre code. Mais si c'est le cas, il y a plusieurs façons de le contourner. La première consiste à utiliser Math.ceil() pour le nombre négatif cas:
double f2 = (f < 0 ? Math.ceil(f * 1000) : Math.floor(f * 1000))/1000;
Ouais, je sais, ça devient un peu en désordre. Mais cela illustre le point.
fonctionne parfaitement pour les nombres positifs. Si vous voulez couper l'arrondi sans les nombres négatifs, vous devez utiliser la troncature plutôt que le sol, ou prendre la valeur absolue dans Math.floor() et multiplier par le signe du nombre d'origine après. –
@Jason S: Bon point sur les nombres négatifs. – Asaph
Salut, cela fonctionne pour les valeurs positives, mais cela ne fonctionne pas pour les valeurs flottantes natives – sanjana
Utilisation DecimalFormat avec setRoundingMode (RoundingMode.FLOOR)
Mais cela ne fonctionnera pas pour les nombres négatifs. – Asaph
Ne serait-(int) (f * 1000) /1000.0 travail? Cela me semble plus clair que les autres suggestions.
C'est vraiment le même concept que la solution Math.floor(). Quoi qu'il en soit, le PO a besoin de travailler avec des nombres négatifs et cette réponse ne répond pas à cette exigence. – Asaph
Il devrait faire la bonne chose avec des nombres négatifs. C'était un peu mon point. –
Je viens de vérifier cela, et il a le bon comportement.J'étais à peu près sûr que lancer à int troncature effectuée, plutôt que d'arrondir. –
Comme mentionné précédemment, vous pouvez utiliser DecimalFormat
DecimalFormat df= new DecimalFormat("##.###");
//##.### spécifie le format que vous voulez
String temp=df.format(var_name);
- 1. SQL Server 2005: Troncation de valeur
- 2. Java: lien JSlider et JTextfield pour la valeur flottante
- 3. Arrondi de virgule flottante (en java)
- 4. Valeurs Flash à virgule flottante et à virgule flottante
- 5. c troncation de fichier journal 0 #
- 6. Renvoi d'une valeur flottante sur un UITextField
- 7. mise à jour Doctrine_Query avec valeur flottante
- 8. contrôlant une valeur flottante avec javascript
- 9. calculs à virgule flottante fixe en Java
- 10. Comment analyser une devise Montant (US ou UE) à la valeur flottante en Java
- 11. Comment "remplir" un paramètre IntPtr avec une valeur flottante?
- 12. Android SeekBar Attributs de valeur flottante minimale et continue
- 13. Calcul de la valeur flottante moyenne dans l'assemblage
- 14. Comment trier un std objet :: vecteur par sa valeur flottante
- 15. virgule flottante - valeur absolue - l'assembleur en ligne - édité nouveau code
- 16. Comment obtenir une valeur flottante pointée par le pointeur?
- 17. Définition de la valeur flottante à partir de Javascript
- 18. Ibatis + Oracle: Comment mettre à jour une valeur flottante
- 19. Comment puis-je stocker une valeur flottante dans un NSArray?
- 20. Détection d'arrondi à virgule flottante
- 21. en virgule flottante Limitations
- 22. Erreurs à virgule flottante dans les bibliothèques matricielles Colt Java
- 23. Comment arrondir une valeur flottante et la convertir en valeur NSInteger dans le SDK iPhone?
- 24. iPhone Objective C - erreur: valeur du pointeur utilisée lorsqu'une valeur à virgule flottante était attendue
- 25. l'insertion d'une valeur à virgule flottante avec une culture dans laquelle des virgules (,) est utilisée pour « virgule flottante »
- 26. java code pour afficher une valeur à virgule flottante dans un format spécifié dans le rapport jasper
- 27. opérations à virgule flottante
- 28. exception de virgule flottante
- 29. précision à virgule flottante
- 30. Position absolue et flottante
l'impression d'une valeur arrondie, ou en changeant la valeur elle-même? les deux réponses ont répondu à ces questions. –