Conversao de Double para String [RESOLVIDO]

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 :slight_smile: