Domanda

E 'possibile formattare prezzo in base alle leggi di questo tipo utilizzando DecimalFormat in Java: 50000 => 50 000 rub 00 Kop

È stato utile?

Soluzione

NumberFormat.getCurrencyInstance() 

probabilmente fa quello che si vuole.

Si potrebbe utilizzare simboli invece che parole per rubli e copechi.

Ecco un esempio di lavoro:

    final NumberFormat currencyInstance = NumberFormat.getCurrencyInstance();
    currencyInstance.setCurrency(Currency.getInstance("RUB"));
    System.out.println(currencyInstance.format(50000));

Questa uscita per me:

  

RUB50,000.00

, che non è esattamente quello che hai chiesto. Ma è un inizio.

Questa alternativa

final NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(new Locale("ru", "RU"));
System.out.println(currencyInstance.format(50000.01));

mi ha dato

  

50 000,01 руб

Altri suggerimenti

Supponendo che si sta utilizzando .Net è possibile formattare l'output utilizzando;

<%
  String format = "<p>{0:#,0 rub .00 kop}</p>";
  Response.Write(String.Format(format, 98765.4321));
  Response.Write(String.Format(format, 98765.4));
  Response.Write(String.Format(format, 987654321));
  Response.Write(String.Format(format, 0.12345));
  Response.Write(String.Format(format, 0.1));
  Response.Write(String.Format(format, 0));
%>

Quali uscite;

 98,765 rub .43 kop
 98,765 rub .40 kop
 987,654,321 rub .00 kop
 0 rub .12 kop
 0 rub .10 kop
 0 rub .00 kop

Non è sicuro come sbarazzarsi del decimale e anche se omettere se == Kop zero.

È anche possibile formato + / ve - / ve stringhe in modo diverso vedono; http://blog.stevex.net/string-formatting-in-csharp/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top