Ajuda!

ai pessoal estou com um probleminha. tenho a Classe DecimalFormat ex
4.55588 porem na hora q eu formato o numero, fica assim 4,5 se eu quiser 1 casa śo. mas o problema é a virgula.
ele coloca a virgula e não o ponto. entenderam?
bom se alguem souber alguma forma dele formata com o ponto agradeço.

mas sem usar uma classe String para trocar a virgula pelo ponto como replace por exemplo.

como vc ta tentando usar o DecimalFormat?
tenta por assim:

DecimalFormat df = new DecimalFormat("0.0");

Você está usando a variável do tipo double? é o seguinte tem como você transformar ela para inteiro aí o caso da vígula desaparece, mas se caso a variável não possa transformar -se em inteiro aí é outro problema…

Caso ela possa ser transformada em inteiro faça o seguinte: :wink:

int nomeVariavel = Integer.parseInt(nomeDaSuaVariavel);

ou

 DecimalFormat umNomeQualquer = new DecimalFormat ("0");

vou olhar para você como faz isto sem ter que transformar para inteiro ok? tenta algo da classe NumberFormat!!! :oops:

[quote=“Felipe”]como vc ta tentando usar o DecimalFormat?
tenta por assim:

DecimalFormat df = new DecimalFormat("0.0"); [/quote]

ola felipe ja usei dessa forma passando os parametros para o construtor, tbm usei usando o metodo setMaximumFractionDigits e outros metodos, mas nao funcionou ele troca a virgula pelo ponto. repare q ele vai fazer o double ficar assim ex 4,5 e nao 4.5. sacou!

[quote=“marcossousa”]Você está usando a variável do tipo double? é o seguinte tem como você transformar ela para inteiro aí o caso da vígula desaparece, mas se caso a variável não possa transformar -se em inteiro aí é outro problema…

Caso ela possa ser transformada em inteiro faça o seguinte: :wink:

int nomeVariavel = Integer.parseInt(nomeDaSuaVariavel);

ou

 DecimalFormat umNomeQualquer = new DecimalFormat ("0");

vou olhar para você como faz isto sem ter que transformar para inteiro ok? tenta algo da classe NumberFormat!!! :oops:[/quote]

mas não é para trasformar para inteiro, tem q arredonda, valeu :lol: com a quantidade de casas decimais.
alem do mais int nomeVariavel = Integer.parseInt(nomeDaSuaVariavel) se for um doble nao funciona ate mesmo um String. o int nao pode ter ponto na hora de trasformar.
mas valeu. :eek:

entaum tenta usar um replace…

DecimalFormat df = new DecimalFormat("0.0");
String str = df.format(numero).replace(',', '.');

Olá,

podemos fazer isso de diversas maneiras.

Como iniciante em java, cheguei a estas duas variações sobre o mesmo tema, que não usam DecimalFormat, e podem ser bem mais flexibilizadas, como receber tambem a qtde de casas decimais.

Notem que ainda estou desvendando a ‘mágica’ do casting, provavelmente
temos como fazer de um jeito mais elegante! :wink:

public class Arredonda{

  public static String arredondaCom1CasaDecimal (double d, 
                                                 String pontoOuVirgula) {

    String str;
    str = (int) d  + pontoOuVirgula + (int) (d % 1 * 10 + .5);
    return str;
  }

  public static double arredondaCom1CasaDecimal (double d) {
    /* uma leve variação do metodo anterior */

    double dd = .1 * (int) (d % 1 * 10 + .5) + (int) d;
    return dd;
  }

  public static void main (String args[]) {

    double  d= 4.55588;
    System.out.println( arredondaCom1CasaDecimal(d) + " => "
                      + arredondaCom1CasaDecimal(d, ","));
  }
}

bob

[quote=“Felipe”]entaum tenta usar um replace…

DecimalFormat df = new DecimalFormat("0.0"); String str = df.format(numero).replace(',', '.'); [/quote]

valeu felipe mas com replace eu ja usei como disse la emcima no topico , queria de outras forma. mas veleu pela ajuda. :lol:

Oi eu fiz do jeito abaixo e deu certo só que eu estou com um prensentimento de “gato”, não sei até que ponto isso dá certo, eu tive este mesmo problema no Delphi pelo que eu pude notar ele coloca ‘,’ quando imprime um valor como string. Não sei se estou certa, mais até o ponto que eu sei toda entrada e saída e string, se alguem puder clarear melhor, gostaria de saber…

:wink: Abraços
Edjane

aí vai
import javax.swing.*;

import java.text.DecimalFormat;

public class Virgulas {

public static void main (String args[])
{
	double n1 = 4.56665, n2 = 3.7777;
	
	double result = n1 * n2;
	
	// em vez de ponto defini como ','
	
	DecimalFormat teste = new DecimalFormat ("0,00"); 
	
	// com ponto tive que multiplicar por 100 pois me dava o valor como se estivesse dividido
	JOptionPane.showMessageDialog(null, teste.format(result * 100));
	
	DecimalFormat teste2 = new DecimalFormat(" 0.00"); 
	
	JOptionPane.showMessageDialog(null, " teste = " + teste2.format (result));

}

}

Oi eu fiz do jeito abaixo e deu certo só que eu estou com um prensentimento de “gato”, não sei até que ponto isso dá certo, eu tive este mesmo problema no Delphi pelo que eu pude notar ele coloca ‘,’ quando imprime um valor como string. Não sei se estou certa, mais até o ponto que eu sei toda entrada e saída e string, se alguem puder clarear melhor, gostaria de saber…

:wink: Abraços
Edjane

aí vai
import javax.swing.*;

import java.text.DecimalFormat;

public class Virgulas {

public static void main (String args[])
{
	double n1 = 4.56665, n2 = 3.7777;
	
	double result = n1 * n2;
	
	// em vez de ponto defini como ','
	
	DecimalFormat teste = new DecimalFormat ("0,00"); 
	
	// com ponto tive que multiplicar por 100 pois me dava o valor como se estivesse dividido
	JOptionPane.showMessageDialog(null, teste.format(result * 100));
	
	DecimalFormat teste2 = new DecimalFormat(" 0.00"); 
	
	JOptionPane.showMessageDialog(null, " teste = " + teste2.format (result));

}

}

Eaê, pessoal !

eu tb estava com o mesmo problema, mas descobri como resolvê-lo ! :lol:

Vejam esse trecho de código:

[code]DecimalFormatSymbols simbolos = new DecimalFormatSymbols();
simbolos.setDecimalSeparator(’.’);
simbolos.setGroupingSeparator(’,’);

DecimalFormat fd = new DecimalFormat("0.00");
fd.setDecimalFormatSymbols(teste);[/code]

E é isso. Nas 3 primeiras linhas, foi instanciado o objeto símbolos, que armazena quais símbolos devem ser usados para separador decimal e de agrupamento (milhares). Depois, na última linha, foi definido no objeto “fd” que deveria ser usado os conjuntos de símbolos do objeto “simbolos” para as formatações.

Espero ter ajudado !

:cool: Violinista