Transformar uma string'2200' em R$ 22,00

11 respostas
b10machado

como crio essa mascara??

vl pessoal.

11 Respostas

ViniGodoy

Faz o parse e divide por 100?

Brainiac.jar

ViniGodoy deu uma excelente dica. Caso tenha dúvidas de como implementar, ai esta:

class StringEmReais{
	public static void main(String[] args) {
		String numero = "2200";
		double dinheiro = (Double.parseDouble(numero) / 100); // usando a dica dada pelo ViniGodoy
		String mascara = String.format("R$ %,.2f", dinheiro); // Então usamos o String.format para criar nossa mascara
		System.out.print(mascara);
	}
}
b10machado

vlw pessoal, vou dar uma olhada

K
NumberFormat.getCurrencyInstance().format(Number)

esse código já vai te dar formatado de acordo com o locale default.
colocando inclusive o simbolo da moeda.

Janerson

class StringEmReais{ public static void main(String[] args) { double convert , numero = 2200; convert = numero/100; System.out.printf("R$%.2f\n",convert); } }
Assim não é mais fácil não?

K

System.out.printf(“R$%.2f\n”,convert);

isso ser mais facil que isso:

NumberFormat.getCurrencyInstance().format(Number)

freakazoid

Apenas para ser polemico rs

String teste="2200";
StringBuilder sb = new StringBuilder();
sb.append(teste);
sb.insert(0, 'R');
sb.insert(1, '$');
sb.insert(4, ',');
		
System.out.println(sb);

Abs!

freakazoid

Agora falando serio, eu faria o que o ViniGodoy e kleberdamasco disseram, mas apenas me certificando o padrão do Locale:

Locale ptBR = new Locale("pt", "BR");

NumberFormat moedaFormat = NumberFormat.getCurrencyInstance(ptBR);
System.out.println(moedaFormat.format(seuNumero));

Abs!

manhanijava

kkkkkkkkkkkkk… além de aprender eu me divirto muito aqui…galera viu quanta soluç~~ao pro mesmo problema…ai está basta escolher uma

WellingtonRamos

Eu prefiro este caminho, usando BigDecimal e BigInteger:

package br.com.guj;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.NumberFormat;

public class CurrencyTest {
	public static void main(String[] args) {
		BigDecimal bd = new BigDecimal(new BigInteger("2200"), 2);
		System.out.println(bd);
		String formattedValue = NumberFormat.getCurrencyInstance().format(bd);
		System.out.println(formattedValue);
	}

}

Já observei erros "toscos" em aplicações por utilizar a primitiva double para valores monerários cuja melhor solução foi a substituição por BigDecimal.

WellingtonRamos

Janerson:
class StringEmReais{ public static void main(String[] args) { double convert , numero = 2200; convert = numero/100; System.out.printf("R$%.2f\n",convert); } }
Assim não é mais fácil não?
Se não houver questões de internacionalização e não ocorrendo outras operações que envolvam valores monetários, sim, é mais simples.

Criado 13 de março de 2013
Ultima resposta 13 de mar. de 2013
Respostas 11
Participantes 8