Formatando números
Boa tarde pessoal!
Depois de um tempo sem postar, estou voltando....
Vou colocar aqui apenas alguns modelos de formatação, para demonstração, que também acredito que sejam os mais utilizados.Isso foi uma das coisas que eu tive um pouco de dificuldade, tanto em fazer como em achar material para consultar.
Depois de um tempo sem postar, estou voltando....
Vou colocar aqui apenas alguns modelos de formatação, para demonstração, que também acredito que sejam os mais utilizados.Isso foi uma das coisas que eu tive um pouco de dificuldade, tanto em fazer como em achar material para consultar.
// Formato moeda da localidade atual do sistema NumberFormat formato1 = NumberFormat.getCurrencyInstance(); // Formato moeda especificando a localidade (Estados Unidos) NumberFormat formato2 = NumberFormat.getCurrencyInstance(new Locale("en", "EN")); // Formato inteiro (arredondado) NumberFormat formato3 = NumberFormat.getIntegerInstance(); // Formato de porcentagem NumberFormat formato4 = NumberFormat.getPercentInstance(); // Formato decimal NumberFormat formato5 = new DecimalFormat(".#");O getCurrencyInstance() pega a moeda da localidade atual do sistema mas, caso seja especificada a localidade, como no formato2, ele utiliza a moeda daquela localidade. A formatação para número inteiro é feita de forma simples. Se o valor decimal for menor que 5, é feito o arredondamento para baixo, senão é feito para cima. A formatação de casas decimais é feita através da mascara colocada logo após DecimalFormat, onde ".#" especifica a quantidade de casas decimais a serem utilizadas. (1 neste caso) E como utilizar isso?
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView texto = (TextView) findViewById(R.id.textView1); double valor = 15.97; NumberFormat formato1 = NumberFormat.getCurrencyInstance(); NumberFormat formato2 = NumberFormat.getCurrencyInstance(new Locale("en", "EN")); NumberFormat formato3 = NumberFormat.getIntegerInstance(); NumberFormat formato4 = NumberFormat.getPercentInstance(); NumberFormat formato5 = new DecimalFormat(".#"); texto.setText(formato1.format(valor)); Log.i("Moeda atual", formato1.format(valor)); Log.i("Moeda EUA", formato2.format(valor)); Log.i("Número inteiro", formato3.format(valor)); Log.i("Porcentagem", formato4.format(valor)); Log.i("Decimal", formato5.format(valor)); }Coloquei todas as formatações para que sejam vistas no log. Qualquer dúvida é só postar aí. Até a próxima!
Como eu faço pra arredondar por exemplo: 6,15 pra 6,2?
ResponderExcluirVoce usando o getIntegerInstance(), eu botando 6,2 ele ja arredonda pra 7, e eu nao quero isso, eu quero arredondar se a segunda casa depois da virgula for maior ou igual a 5. Voce pode me ensinar?
Boa noite Filipi Andrade!
ExcluirMe desculpe toda essa demora, estive muito corrido.
Mas respondendo a sua pergunta, espero que ainda ajude, basta você colocar mais um #
como eu disse no post, cada # representa uma casa decimal.
ficaria desta forma:
NumberFormat formato5 = new DecimalFormat(".##");
gostei da sua explicação
ResponderExcluirobrigado
Amigos como é que consigo Alinhar a direita o VALOR no TextView. Obg
ResponderExcluirBoa noite!
ExcluirEsta parte de alinhamento do texto no TextView eu faço no xml, utilizando o seguinte código:
<TextView
android:id="@+id/TextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:text="Teste de alinhamento" />
public static String moeda (Double valor){
ResponderExcluirNumberFormat formato1 = NumberFormat.getCurrencyInstance();
String s = (formato1.format(valor));
return s;
}
Somente isso simples.
Ajudou bastante, muito obrigado André Luís
ResponderExcluirpublic void calcular (View view) {
ResponderExcluirn1 = Double.parseDouble(metragemdacasa.getText().toString());
results = n1 / 10;
metroos.setText(String.valueOf(results));
eu quero arredondar o results
cara muito show ! resolveu meu problema! vlw
ResponderExcluirGalera boa tarde,
ResponderExcluirEstou com dificuldades para entender esse trecho do tutorial de jogo da forca
Minhas dúvidas são
1-porque tem o "(int) ali como se estivesse convertendo a palavra sorteada para um inteiro
2-Como funciona esse método do Random? Pois se estou fazendo uso do Random para palavras pq ali ele converte de String para inteiro para depois saber o tamanho da palavra sorteada?
public String sorteio() {
String palavraSorteada = palavras[(int)(random()*palavras.length)];
return palavraSorteada;
}
public static double random() {
Random r = new Random();
return r.nextDouble();
}
}
Bom dia estou tendo dificuldade para formatar meu código moeda segue abaixo
ResponderExcluirCart
private void loadListfood() { cart = new Database(this).getCarts(); adapter = new CartAdapter(cart, this); recyclerView.setAdapter(adapter);
int total = 0; for (Order order : cart) total += (Integer.parseInt(order.getPrice())) * (Integer.parseInt(order.getQuantity())); NumberFormat nf = NumberFormat.getCurrencyInstance();
txtTotalPrice.setText(nf.format(total));
}
CartAdapter
@Override public void onBindViewHolder(CartViewHolder holder, int position) { TextDrawable drawable = TextDrawable.builder() .buildRound("" + listData.get(position).getQuantity(), Color.BLUE); holder.img_cart_count.setImageDrawable(drawable);
Locale locale = new Locale("pt", "BR"); NumberFormat fmt = NumberFormat.getCurrencyInstance(locale); int price = (Integer.parseInt(listData.get(position).getPrice())) * (Integer.parseInt(listData.get(position).getQuantity())); holder.txt_price.setText(fmt.format(price));
holder.txt_cart_name.setText(listData.get(position).getProductName());
}
@Override public int getItemCount () { return listData.size(); } }