Pessoal to com o seguinte problema, to desenvolvento um sistema q lê o codigo de barras de balanca e pega o codigo do produto e o valor do mesmo, porem a formatação que ele vem e meio chata exemplo:
006624 significa R$ 6,62;
004346 significa R$ 4,34;
To pensando em usar BigDecimal ou BigInteger para trabalhar com este valor, mais alguem sabe como formatar o codigo pra virar o valor?
String s = "006624";
Double d = new Double(s.substring(1, 5));
d = d/100;
System.out.println(d);
Isso não resolveria? Não sei se dividir por 1000 seria viável, pois vai depender do tipo de código de barras, as vezes esse último número é um digito verificador e também por questão de problemas com o consumidor (para não correr o risco de na etiqueta sair um valor menor que no cupom fiscal) normalmente se trunca para duas casas decimais.
String s = "006624";
Double d = new Double(s.substring(1, 5));
d = d/100;
System.out.println(d);
Isso não resolveria? Não sei se dividir por 1000 seria viável, pois vai depender do tipo de código de barras, as vezes esse último número é um digito verificador e também por questão de problemas com o consumidor (para não correr o risco de na etiqueta sair um valor menor que no cupom fiscal) normalmente se trunca para duas casas decimais.[/quote]
Essa Solução nao da certo amigo, pois posso te um valor maior, exemplo
481114 que significaria R$ 481,114.
A unica regra que tenho e que as 3 ultimas casas sao os valores depois da virgula.
O que impediria? Eu não entendi. O substring é somente para desprezar o último caracter, caso você não queira desprezar o último caracter faça o que thingol propós, divida por 1000 e tá resolvido. Agora posso te adiantar uma coisa, em se tratando de etiquetas de mercadoria o melhor é sempre truncar, pois se depois seu sistema arredondar e por ventura na nota ou cupom o valor sair maior que na etiqueta é problema na certa. Se reparar algumas balanças tem configuração para arredondar ou truncar os valores nos labels (as informações que aparecem na etiqueta além das barras), como isso fica na mão do usuário vc tem que tá preparado para tudo, por isso normalmente aconselho ser pessimista e perder alguns centavos.