Bom Dia Amigos
Estou com um probleminha na conversao de um campo Double para String o cenario é o seguinte tenho um valor (ex: 5000,00 ou - 5000,00)
Fiz essa linha “Variavel_1 = Double.parseDouble(”"+Variavel_1.replace("-",""));"
Porem ele da dois erros “Imcompatibilidade de tipo: impossivel converter double para string” e “o metodo replace(String,String) é indefinido para o tipo doble”
Alguem teria uma sugestao para sanar este problema???
Desde ja agradeco a ajuda !
Pq ao invés de fazer uma substituição e conversão na mesma linha vc não faz passo a passo.
:thumbup:
o fato de você colocar um “” antes da variável não a converte em uma String.
Variavel_1 ainda é um double, você tem que criar uma String a partir dela antes de fazer esse processamento.
Obs: se você só quer transformar um -5000 em 5000, existe uma operação matemática pra isso.
Antes de tudo obrigado pela respostas…
Voce diz fazer passo a passo como? pode me citar um exemplo?
E quanto a operacao matematica qual funcao voce sugere?
Obrigado
pra alterar o sinal de um número é só multiplicar por -1.
o problema de multiplicar por - 1 eh que o campo varia de negativo ou positivo entao nao resolveria o problema…
Variavel_1 = Variavel_1 < 0 ? (Variavel_1 * -1) : Variavel_1;
Só uma sugestão, coloque nomes que tenham algum significado nas suas variáveis, o código fica muito mais legível, e procure seguir as boas práticas que dizem pra usar o padrão camelCase no nome das variáveis.
Pra transformar um negativo em positivo pode-se usar o Math.abs();
Ele retorna o valor absoluto de uma variável, se ela for positiva, vai retornar ela mesmo. Se for negativa, vai retornar o valor positivo.
Bem tranquilo!
Para converter negativo em positivo, da pra usar o método estático abs da classe Mat.
Exemplo : (Math.abs(SEU_VALOR_NEGATIVO)).
Porém, seu título é : converter DOUBLE para STRING,
logo vc usa String.valueOf(SEU_DOUBLE_AQUI).
Assim, vc pode usar os métodos de uma String…
1 curtida
Pergunta. Digamos que você tenha o valor -5000.00.
Você precisa converter para “-5.000,00” ou “(5.000,00)”? Pelo que imagino, você quer mexer com moedas, não?
[quote=William Ricardo]Para converter negativo em positivo, da pra usar o método estático abs da classe Mat.
Exemplo : (Math.abs(SEU_VALOR_NEGATIVO)).
Porém, seu título é : converter DOUBLE para STRING,
logo vc usa String.valueOf(SEU_DOUBLE_AQUI).
Assim, vc pode usar os métodos de uma String…[/quote]
nesse caso se nao for usar o math.abs, haveria outra forma de tratar o sinal “-” pq no double nao da pra usar o .replace("-","")
[quote=entanglement]Pergunta. Digamos que você tenha o valor -5000.00.
Você precisa converter para “-5.000,00” ou “(5.000,00)”? Pelo que imagino, você quer mexer com moedas, não?[/quote]
isso mesmo!
Então é assim. Vou dar um exemplinho bem cozinhadinho.
import java.util.Locale;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
class ExemploCozinhado {
public static void main (String[] args) {
String s;
double d;
DecimalFormatSymbols dfs = new DecimalFormatSymbols (new Locale ("pt", "BR"));
// Formato com sinal de menos -5.000,00
DecimalFormat df1 = new DecimalFormat ("#,##0.00", dfs);
// Formato com parêntese (5.000,00)
DecimalFormat df2 = new DecimalFormat ("#,##0.00;(#,##0.00)", dfs);
d = -5000.00;
s = df1.format (d);
System.out.println (s); // imprime -5.000,00
s = df2.format (d);
System.out.println (s); // imprime (5.000,00)
}
}
obrigado pelas respostas o problema foi resolvido!
pra variar o entanglement enxergou o problema dentro do problema hehehe.
Coloca [RESOLVIDO] no tópico por favor 