então minha codificação deve ser dupla total = Double.parseDouble (string) ;?
TinyBelly
4
@TinyBelly: sim parece que você quer:double total = Double.parseDouble(jlbTotal.getText());
WhiteFang34
1
@TinyBelly: você precisa extrair a parte do texto da string que deseja analisar para o dobro. Aqui está uma maneira de você fazer isso no seu caso, embora eu não possa garantir que funcione para tudo: double total = Double.parseDouble(jlbTotal.getText().replaceAll("[^0-9.]", ""));- isso basicamente substitui todos os caracteres que não são um número ou .para nada, deixando apenas o número e o ponto decimal a serem analisados.
precisa saber é o seguinte
4
não é recomendável usar o dobro para cálculos de preços.
Bozho
2
Para aqueles atraídos aqui enquanto pesquisam o resultado da classe em Doublevez do doubleuso do tipo primitivo Double.valueOf(String).
Pshemo
48
Se você tiver problemas ao analisar a string para valores decimais, precisará substituir "," no número para "."
String number ="123,321";double value =Double.parseDouble( number.replace(",","."));
Não, String.valueOf (something) retorna uma representação String de algo: se algo é um tipo interno ou se é um objeto e é nulo, caso contrário, é equivalente a someObject.toString (). Para obter um Double a partir de uma String, é necessário fazer o contrário, conforme mostrado nas outras respostas (Double.valueOf (someString) retorna Double, e Double.parseDouble (someString) retorna double).
publicstaticdouble convertToDouble(String temp){String a = temp;//replace all commas if present with no commaString s = a.replaceAll(",","").trim();// if there are any empty spaces also take it out. String f = s.replaceAll(" ","");//now convert the string to doubledouble result =Double.parseDouble(f);return result;// return the result}
Por exemplo, você digita a String "4 55,63. 0", a saída será o número duplo 45563.0
O uso Double.parseDouble()sem o try/catchbloco circundante pode causar potencial NumberFormatExceptionse a sequência dupla de entrada não estiver em conformidade com um formato válido.
O Goiaba oferece um método utilitário para isso, que retorna nullcaso sua String não possa ser analisada.
"retorna 0.0 caso sua String não possa ser analisada" - O Javadoc não suporta essa reivindicação.
Tom
@Tom Retorna valor nulo Tipo duplo que pode ser convertido em 0,0 tipo duplo - DYS há 13 segundos editar
DYS
1
Pode, mas não automaticamente, e seu snippet falha ao fazer isso.
Tom
1
Utilizado para converter qualquer número de String para dobrar quando você precisar de int apenas converter o tipo de dados de num e num2 para int; levou todos os casos para qualquer cadeia dupla com o Eng: "Bader Qandeel"
publicstaticdouble str2doubel(String str){double num =0;double num2 =0;int idForDot = str.indexOf('.');boolean isNeg =false;String st;int start =0;int end = str.length();if(idForDot !=-1){
st = str.substring(0, idForDot);for(int i = str.length()-1; i >= idForDot +1; i--){
num2 =(num2 + str.charAt(i)-'0')/10;}}else{
st = str;}if(st.charAt(0)=='-'){
isNeg =true;
start++;}elseif(st.charAt(0)=='+'){
start++;}for(int i = start; i < st.length(); i++){if(st.charAt(i)==','){continue;}
num *=10;
num += st.charAt(i)-'0';}
num = num + num2;if(isNeg){
num =-1* num;}return num;}
Respostas:
Você pode usar
Double.parseDouble()
para converter aString
emdouble
:Para o seu caso, parece que você deseja:
fonte
double total = Double.parseDouble(jlbTotal.getText());
double total = Double.parseDouble(jlbTotal.getText().replaceAll("[^0-9.]", ""));
- isso basicamente substitui todos os caracteres que não são um número ou.
para nada, deixando apenas o número e o ponto decimal a serem analisados.Double
vez dodouble
uso do tipo primitivoDouble.valueOf(String)
.Se você tiver problemas ao analisar a string para valores decimais, precisará substituir "," no número para "."
fonte
Para converter uma string novamente em dupla, tente o seguinte
O método parseDouble alcançará o efeito desejado, assim como o método Double.valueOf ().
fonte
Isso deve converter a string aString no duplo d.
fonte
Use
new BigDecimal(string)
. Isso garantirá o cálculo adequado posteriormente.Como regra geral - sempre use
BigDecimal
para cálculos sensíveis como dinheiro.Exemplo:
fonte
Você só precisa analisar valores de String usando Double
fonte
Citando a citação de Robertiano acima novamente - porque essa é de longe a versão mais versátil e adaptável à localização. Merece um post completo!
Outra opção:
fonte
fonte
Há outra maneira também.
Double é uma classe e "temp" é uma variável. "number" é o número final que você está procurando.
fonte
Isto é o que eu faria
Por exemplo, você digita a String "4 55,63. 0", a saída será o número duplo 45563.0
fonte
O uso
Double.parseDouble()
sem otry/catch
bloco circundante pode causar potencialNumberFormatException
se a sequência dupla de entrada não estiver em conformidade com um formato válido.O Goiaba oferece um método utilitário para isso, que retorna
null
caso sua String não possa ser analisada.https://google.github.io/guava/releases/19.0/api/docs/com/google/common/primitives/Doubles.html#tryParse(java.lang.String)
Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);
Em tempo de execução, uma entrada String malformada gera
null
atribuída avalueDouble
fonte
Utilizado para converter qualquer número de String para dobrar quando você precisar de int apenas converter o tipo de dados de num e num2 para int; levou todos os casos para qualquer cadeia dupla com o Eng: "Bader Qandeel"
fonte
fonte
Você pode usar double.parseDouble ();
fonte