Erro em conversao

6 respostas
M

Pessoal preciso o seguinte tenho um valor float:

50,55

preciso fazer um layout bancario, ele deve ser [telefone removido]

ou seja tem de ter 10 posicoes com 2 decimais e preencher com 0

float numero = 50,55;
       String numerof = String.format("%10.2f\n", numero);
       numerof = numerof.replace(",", "");
       System.out.println(numerof);   /*retorna  5055*/

       int numero2 = 0;
       numero2 = Integer.parseint(numerof); /*da erro de nullpointer exeption*/
      
       String str = String.format ("%10d", numero2);   /*aqui em valores inteiros ele adiciona 0 antes*/
       System.out.println(str);

Alguem pode ajudar

6 Respostas

kiq095

por q vc ta transformando o String em interger de novo ???
vc transforma e depois distranforma e depois transfoma de novo ..!!!
tenta faser uma vez so .. transformar em string manipular e se quiser tranforma em interger de novo ..!!
nao sei se vaidar certo mais tenta ai .. masi ou manos assim ..

float numero = 50,55;  

String numerof = String.format("%10.2f\n", numero);  
numerof = numerof.replace(",", "");  
System.out.println(numerof);   /*retorna  5055*/
M

Sim mas aplicar os numeros a esquerda preciso passar pra integer

pois “%10d” somente aceita numeros.

Minha saida tem de ser [telefone removido] e não somente 5055

kiq095

mlorenzi:
Sim mas aplicar os numeros a esquerda preciso passar pra integer

pois “%10d” somente aceita numeros.

Minha saida tem de ser [telefone removido] e não somente 5055

sim … mais vc tava convertendo em interger , string , interger , string de novo …!!!

entao tenta converter pra interger … manipular … depois converter pro q vc quiser …!!!
por q acho q quando vc converte pra string ou interger o 0 a esquerda nao e contado …
ai que ta o erro …
vc vai ter q coloar algum numero antes … ou tenta faser o contrario
5055000000000…
por q na hora de inverter nao conta o 0 … ou vc inverte pra sting e coloca os 0 antes e depois nao inverte mais ai acho q da certo …

tenta ai e me fala

kiq095

aqui pensei aqui tenta colocar 0,000000005055

ai depois vc faz isso ...

por exe:

string numero =0,000000000005055;

numero=numero.substring(2,numero.length());

System.out.println(numero);

resutato: 0000000005055

a substring tira os dois primeiros digitos e se quiser tirar masi e so almentar o numer ao inves de 2 coloca 1 .. .. 4 .. 6.. fique a vontade

M

oK PRA UM TESTE SIMPLES VAI,

MAS TENHO DE PEGAR O VALOR DO MEU BANCO DE DADOS

QUE PODE VIR 20.00 OU 150.32 OU 200.10 OU 1550.69 TEM DE SER ALGO DINAMICO.

ENTEDES POR ISSO QUERIA USAR O FORMAT AI NAO PRECISO ME PREOCUPAR COM O TAMANHO.

POIS SEMPRE VAI SER 10 POSICOES COMPLETANDO COM 0 A ESQUERDA

M
Problema resolvido

float numero = (float) 1505.50;

String numerof = String.format("%10.2f\n", numero); /<em>dez posicoes com 2 decimais</em>/

numerof = numerof.replace(",", “”);  /<em>remove a virgula</em>/

String str = String.format ("%010d", Integer.parseInt(numerof.trim()));   /<em>adiciona o 0 nos espacos em branco</em>/

System.out.println(str);
Criado 1 de abril de 2011
Ultima resposta 1 de abr. de 2011
Respostas 6
Participantes 2