Não tenho certeza de que sou eu ou o quê, mas estou tendo um problema ao converter um dobro em string.
aqui está o meu código:
double total = 44;
String total2 = Double.toString(total);
Estou fazendo algo errado ou estou perdendo um passo aqui.
Eu recebo um erro NumberFormatException
ao tentar converter isso.
totalCost.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
try {
double priceG = Double.parseDouble(priceGal.getText().toString());
double valG = Double.parseDouble(volGal.toString());
double total = priceG * valG;
String tot = new Double(total).toString();
totalCost.setText(tot);
} catch(Exception e) {
Log.e("text", e.toString());
}
return false;
}
});
Estou tentando fazer isso em um onTouchListener. Vou postar mais código, basicamente quando o usuário toca na caixa do edittext, quero que as informações calculem e preencham a caixa do edittext.
Respostas:
Isso converterá o dobro para String
fonte
NumberFormat fmt = NumberFormat.getInstance(); fmt.setGroupingUsed(false); fmt.setMaximumIntegerDigits(999); fmt.setMaximumFractionDigits(999);
então usetotal2 = fmt.format(total)
Double.toString()
. Não tenho certeza de como responde à pergunta.Usando Double.toString (), se o número for muito pequeno ou muito grande, você receberá uma notação científica como esta: 3.4875546345347673E-6. Existem várias maneiras de ter mais controle do formato da string de saída.
Usar String.format () será a melhor maneira conveniente.
fonte
Este código compila e funciona para mim. Ele converte um dobro em uma string usando as chamadas que você tentou.
Estou intrigado com o fato de você ver o NumberFormatException. Veja o rastreamento da pilha. Suponho que você tenha outro código que não esteja mostrando no seu exemplo que está causando a exceção.
fonte
A exceção provavelmente vem das chamadas parseDouble (). Verifique se os valores fornecidos para essa função realmente refletem um dobro.
fonte
funciona. tem que ser repetitivo.
fonte
Kotlin
Você pode usar
.toString
diretamente em qualquer tipo de dados no kotlin, comofonte
esse código funciona
fonte
Double.toString()
chamaString.valueOf(double)
quais chamadasDouble.toString(double)
. Louco, não é?Um deles está lançando a exceção. Você precisa adicionar algum registro / impressão para ver o que há
volGal
epriceGal
- não é o que você pensa.fonte
String
s não é uma representação válida de umdouble
motivo pelo qual você está recebendo essa exceção.Double.toString(total);
não pode lançar uma exceção. Sempre. . Você mudou para algonew Double(total).toString();
que também não pode e, se vir aqui a resposta que foi rejeitada, não é algo que você queira fazer.double.toString()
Deveria trabalhar. Não é o tipo de variávelDouble
, mas a própria variáveldouble
.fonte
Basta usar o seguinte:
Isso funcionará para qualquer tipo de dados.
Exemplo:
fonte
Use
StringBuilder
classe, assim:Você obterá a saída desejada.
fonte
Que tal quando você faz o
Você apenas faz
Onde o "" + <variável> o converterá em string automaticamente
fonte
Informações completas
Você pode usar String.valueOf () para float, double, int, booleano etc.
fonte
Existem três maneiras de converter duplo em String .
"" + d
classe pública DoubleToString {
}
String to double
fonte