O problema não são as casa, é aquela vírgula. Vc tem um ponto e uma vírgula, isso não é um número válido. O ponto é o separador de decimal correto se quiser fazer a conversão.
Felipe_Martins1
Poise se eu substituir aquela virgula por ponto tambem da erro, não sei oque devo fazer
darlan_machado
Sim, está correto. Afinal, 1.100,00 é a maneira como você vai apresentar o número, mas o mesmo tem valor 1100, não é isso?
O compilador não entende este valor
1.100,00
Como sendo um número válido.
Remova a vírgula e tudo o que tem após ela.
Felipe_Martins1
Sim eu pego esse numero de uma String dai fiz replace(",00",""); mas dai pode acontecer de
ser 1.100,80 centavos ai vai dar furo
darlan_machado
Cara, acho que você não entende o funcionamento de substring (neste caso, o replace seria mais recomendado.
Considere os valores:
1.100,00
1.100,80
Na verdade, eles são
11000
1100.80
Entendeu?
Rodrigo_Void
Só substituir n dá pq terá dois pontos, precisa desformatar isso.
Esquece as gambiarra, usa DecimalFormat:
E não vai dar furo, substring não funciona dessa maneira, funciona com replace e o replace só vai . trocar o que coincidir com o primeiro argumento. Como ,80 é diferente de ,00, então não terá substituição.
Só abrindo um parenteses para o caso de fazer replace.
Teria se usar o método replace ao invés do replaceAll.
O replace tbm substitui todas ocorrências, mas o replaceAll recebe uma regex(expressão regular) onde o ponto na verdade é um coringa para qualquer caractere, logo vai substituir tudo por nada.
darlan_machado
Certíssimo, eu que nunca lembro qual deles recebe um regex.