2011-01-28 4 views
1

Salut j'ai un fichier CSV qui contient des lignes comme celle-ciComment convertir des nombres flottants CSV doubler en java

Jacop, « adjoint », 150,75

je veux convertir 3ème colonne à 150,75 en java

Dois-je écrire une fonction pour cela. Or est-il une autre façon?

grâce

+0

Cette réponse explique comment capturer la dernière occurrence d'une ligne en utilisant une regex (substitut): http://stackoverflow.com/questions/4094024/how-to-replace-last-dot-in-a-string- using-a-regular-expression. Cette réponse explique comment convertir une chaîne en un nombre en Java: http://stackoverflow.com/questions/1097332/convert-a-string-to-number-java –

Répondre

0

idée rapide:

  • obtenir cette valeur comme chaîne
  • remplacer "" avec "" dans la chaîne
  • essayer d'analyser double avec Double.parseDouble
0

recherche d'expression régulière simple et remplacer dans votre fichier texte (en utilisant sed ou autre) pour convertir la virgule à un point décimal devrait fonctionner correctement.

Ensuite, utilisez opencsv pour tirer tout cela dans:

http://opencsv.sourceforge.net/

1

UBe attention des flottants erreurs arithmétiques à virgule, mais cela est la bonne idée:

int a = Integer.valueOf("150"); // Since your numbers are coming from a CSV 
int b = Integer.valueOf("75"); 

double c = c = (a * 100 + b)/100.0; 
=> 150.75 

Remarque, la valeur si 100 est là en supposant que votre nombre à la droite de la décimale est toujours deux chiffres. Donc, si ce n'est pas constant, n'utilisez pas cette réponse.

Questions connexes