Formatando um float em duas casas decimais

pessoal,

preciso converter o valor de um float para String, porém ele precisa ficar com duas casas decimais.
alguem pode me dizer como formatar esse float para ficar com essas duas casas decimais, que classe usar…

obrigado pela atenção!

2 curtidas

luis, essa pergunta já foi respondida várias vezes no forum, então procure antes de perguntar, ok?

[code]

float teste = 2341.237843F;
DecimalFormat df = new DecimalFormat(“0.00”);
System.out.println(df.format(teste));[/code]

1 curtida

Bom… vc pode criar um método para fazer essa conversão. Assim, sempre que você precisar, você vai poder usá-lo…

Exemplo:

public String formatarFloat(float numero){
  String retorno = "";
  DecimalFormat formatter = new DecimalFormat("#.00");
  try{
    retorno = formatter.format(numero);
  }catch(Exception ex){
    System.err.println("Erro ao formatar numero: " + ex);
  }
  return retorno;
}
1 curtida

valeu pessoal!

Oi pessoal, estou tendo como resposta de saída estranho quado eu utilizo o código

[code]package investimento;

public class TestaInvestimento {

public static void main(String[] args) {
	Investimento moderado = new Moderado();
	Investir investir = new Investir(300.0F);
	CalculadoraDeInvestimento calculadoraDeInvestimento = new CalculadoraDeInvestimento();	
	calculadoraDeInvestimento.calculaOMontante(investir, moderado);
}	

}[/code]

[code]
public class CalculadoraDeInvestimento {

public void calculaOMontante(Investir investir, Investimento conservador) {
	double investimento = conservador.retorna(investir);
	System.out.println(investimento);
}

}[/code]

[code]public class Investir {

private double dinheiro;

  //get e set

}[/code]

import java.util.Random;

public class Moderado implements Investimento {

	public double retorna(Investir investir) {
		Random random = new Random();
		double bolsa = 0;
		
		if(random.nextDouble() < 0.50){
			bolsa = investir.getDinheiro()*0.025; 
		} else {
			bolsa = investir.getDinheiro()*0.07;
		}
		return bolsa;
	}

}

e o resultado que estou tendo é 21.000000000000004. Como alterar esse valor para 21, sei que há metodós matemáticos para isso, mas pode não ser válido para alguns números. Alguém pode me ajudar?

Para lidar com dinheiro, use BigDecimal, e não Double:


http://www.devmedia.com.br/java-bigdecimal-trabalhando-com-mais-precisao/30286