Comment couper décimal en Java SANS arrondi?
J'ai une série de Java décimales comme:
0.43678436287643872
0.4323424556455654
0.6575643254344554
Je souhaite couper tout ce qui est après 5 décimales. Comment est-ce possible?
Techniquement, pas de: la loi de couper le plus de décimales est arrondi, que vous êtes toujours arrondi vers le bas à 5 décimales. Voir les réponses ci-dessous pour vos options.
voulez-vous vous entraîner à être une Chaîne de caractères ou un nombre?
Je veux que le résultat soit un nombre
voulez-vous vous entraîner à être une Chaîne de caractères ou un nombre?
Je veux que le résultat soit un nombre
OriginalL'auteur Zubair | 2011-12-13
Vous devez vous connecter pour publier un commentaire.
Si vous voulez garder les choses simples et rapides. 😉
imprime
Ce n'est peut-être la meilleure solution! Je suis juste en essayant de trouver des problèmes avec elle avant que je l'accepte!
Dans le premier cas, votre valeur doit être inférieure à dix billions de dollars pour éviter un débordement, dans le second cas, vous n'avez pas besoin de s'inquiéter.
c'est fantastique, merci! se charge de code de refactoriser maintenant 🙂
La dernière fois que j'ai testé
Math.floor(x)
était légèrement plus lente que la fonte(long) x
mais qui a au moins 5 ans. J'imagine que si vous avez essayé de JMH ce aujourd'hui, il n'est probablement pas beaucoup plus lents.OriginalL'auteur Peter Lawrey
HALF_UP n'est pas correct. peut-être "en BAS"?
Oui, vers le BAS, bien sûr.
maintenant rien ne vous empêche de l'édition de votre réponse
Juste une note pour toute personne cherchant à cela, convertir votre flotteur à une chaîne puis construire votre BigDecimal avec cette chaîne.
OriginalL'auteur Artem
OU
où
x
contient la valeur que vous voulez couper comme0.43678436287643872
Mon erreur. Je n'ai pas compté "0.". Édité.
Merci pour suggérer
Mise en garde: Fonctionne si et seulement si l'entrée est entre -10 et 10.
Je dirais, si vous avez neagative valeur, son 0-8 sinon, il sera 0-7. @Piskvor: i 'aint vous obtenez..
OriginalL'auteur Kris
La DecimalFormat pourrait aussi être de l'aide ici:
OriginalL'auteur Costis Aivalis
Je crois que le
java.texte.DecimalFormat
classe est ce que vous avez besoin.OriginalL'auteur thejartender
Je le ferais avec des expressions régulières comme ceci:
Le modèle peut facilement être modifié si vous avez besoin d'un soutien plus ou moins de décimales.
OriginalL'auteur nowaq
De généraliser Pierre de réponse, vous pouvez faire:
OriginalL'auteur FrankMonza