Comptez le nombre de chiffres après la virgule décimale en Java

je veux faire

Je veux compter le nombre après la virgule décimale.

contribution(Float) production(int)
0.0 0
1.0 0
0.1 1
11.1 1
0.001 3

code

public int getPrecision(Float val){
  //En Java, la méthode de conversion de Float en int est beaucoup de traitement inutile, elle est donc comptée comme une chaîne de caractères.
  String str = String.valueOf(val);

  //La fin de la phrase".0"Et".00000"Tous ceux qui se terminent par sont définis sur le chiffre 0
  if(str.matches("^.*\\.0+$")){
    return 0;
  }

  int index = str.indexOf(".");
  return str.substring(index + 1).length();
}

résultat

Je peux faire ce que je veux faire.

Ci-dessous, l'histoire à laquelle j'étais accro

Tout d'abord, la partie de l'expression régulière

str.matches("\\.0+$")

Quand je l'ai écrit, la sortie est devenue étrange.

Entrée 0.0 sortie 1 ← faux
Entrée 0.1 Sortie 1 ← Correct

cette?

Quand j'essaye de déboguer

"0.0".matches("\\.0+$")
//résultat:false

cette? Ne correspond pas

En fait, ce code était synonyme du code ci-dessous.

"0.0".matches("^\\.0+$$")
//résultat:false

Conclusion

Lorsque vous utilisez la méthode String.matches en java, utilisez une expression régulière comprenant ^ et $

// \\.0+$Lorsque vous souhaitez utiliser l'expression régulière de. .. ..
"0.0".matches("^.*\\.0+$")
//résultat:true

référence

http://d.hatena.ne.jp/kakkun61/20100104/1262605869

Recommended Posts

Comptez le nombre de chiffres après la virgule décimale en Java
[Note] Gestion des points décimaux Java
Nombre de chiffres de l'élément de type numérique
L'histoire de l'écriture de Java dans Emacs
[Java] Vérifiez le nombre d'occurrences de caractères
Augmenter dynamiquement le nombre d'éléments dans un tableau bidimensionnel Java (tableau multidimensionnel)
Comment trouver le nombre total de pages lors de la pagination en Java
L'histoire de la comparaison de chaînes de bas niveau en Java
L'histoire de la fabrication d'un Othello ordinaire à Java
À propos de l'idée des classes anonymes en Java
L'histoire de l'apprentissage de Java dans la première programmation
Mesurer la taille d'un dossier avec Java
Ressentez le passage du temps même à Java
Je veux tronquer après la virgule décimale
Importer des fichiers de la même hiérarchie en Java
[java] Nombre de déclin → nombre n-aire nombre n-aire → nombre décimal
Obtenez l'URL de la destination de la redirection HTTP en Java
Modifier la qualité de stockage des images JPEG en Java
Le nombre de chiffres peut-il être Math.log10 (x) .floor + 1?
Récapitulez les éléments supplémentaires de la classe Optional dans Java 9
A été effectué dans l'année de base de la semaine calendaire Java
[Ruby] Comptez un nombre pair dans un tableau en utilisant la méthode pair?
Une explication rapide des cinq types de statique Java
Obtenu le jour ouvrable suivant la date spécifiée avec JAVA
Commande pour vérifier le nombre et l'état des threads Java
Un programme qui compte le nombre de mots dans une liste
Comment dériver le dernier jour du mois en Java
À propos du comportement par défaut de l'arrondi des fractions à l'aide de java.text.NumberFormat
[Java] Supprimer le nombre spécifié de caractères à la fin de StringBuilder
Implémentation Java de tri-tree
Trouvez le nombre de jours dans un mois avec Kotlin
À propos de la méthode de conversion d'une chaîne de caractères en entier / fraction (données de conversion) en Java
Gestion de la virgule flottante java Lors de la lecture du livre de référence [Note]
Examiner les informations système de l'environnement d'exploitation AWS Lambda en Java
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
Sortie de la différence entre chaque champ de deux objets en Java
Examiner la liste des polices disponibles dans AWS Lambda + Java
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Examinez la liste des ID de fuseau horaire disponibles dans la classe Java ZoneId
Obtenez l'URL publique du fichier privé de Flickr en Java
Le point addictif lors de l'authentification de base avec Java URLConnection
Créons une application TODO en Java 5 Changer l'affichage de TODO
Comment obtenir la longueur d'un fichier audio avec Java
Comment incrémenter la valeur de Map sur une ligne en Java
Accéder à l'interface réseau avec Java
[Java] Supprimer les éléments de la liste
Devinez le code de caractère en Java
[Édition Java] Histoire de la sérialisation
Spécifiez l'emplacement Java dans eclipse.ini
Liste des membres ajoutés dans Java 9
Analyser l'analyse syntaxique de l'API COTOHA en Java
Liste des types ajoutés dans Java 9
Ordre de traitement dans le programme
L'origine des expressions Java lambda
Implémentation d'une fonction similaire en Java
Appelez la super méthode en Java
Définissez le nombre de secondes d'avance et de retour rapides dans ExoPlayer