J'obtiens de la valeur au format monétaire, mais je veux uniquement un format double.

String amt = txn.getAmount();
System.out.println("--amt--"+amt);//output:1010
double value = Double.parseDouble(amt);
System.out.println("---value---"+value);//output:1010.0
String ammount=NumberFormat.getCurrencyInstance().format(value);
System.out.println("--ammount--"+ammount);//output:Rs.1,010.00

Ici, je veux Rs.1,010.00 à 1010.00

Des erreurs dans mon code?

0
Durga 21 avril 2017 à 09:54

3 réponses

Meilleure réponse

Je suppose que vous ne voulez pas connaître les détails de la devise. Dans ce cas, utilisez getNumberInstance () au lieu de getCurrencyInstance ().

Utilisation:

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setGroupingUsed(false);
nf.setMinimumFractionDigits(2);
String ammount= nf.format(value);
3
dev8080 21 avril 2017 à 07:04

Avant d'imprimer, remplacez la chaîne «Rs». avec "" et aussi "," avec "".

String replaceString1=amount.replace("Rs.","");
String replaceString2=amount.replace(",","");

C'est une façon de gérer ce cas. J'espère que cela t'aides.

0
Ria Sen 21 avril 2017 à 07:02

Essayez cette approche plus propre !.

      double d = 1010.00;
      Locale uk = new Locale("en", "GB");
      NumberFormat cf = NumberFormat.getCurrencyInstance(uk);
      String s = cf.format(d);

      System.out.println(s);

      Number number = null;
      try
      {
         number = cf.parse(s);
      }
      catch (ParseException e)
      {
         System.out.print(e);
      }
      double dClone = number.doubleValue();
0
diyoda_ 21 avril 2017 à 07:03