Pessoal to tendo um pequeno probleminha em calcular numeros do meu banco que tem centavos, quando ele ta inteiro ex: 50.00 ele faz o calculo normal mas quando ele vem assim ex: 50.50 ele ta bugando o q tenho que fazer para efetuar calculo com centavos veja meu codigo
Use double. Por que é que está fazendo tudo com int?
Giulliano
Use BigDecimal para efetuar cálculos com dinheiro
M
Man_United
Certo coloquei em Double e deu certo mas se faco uma operacao 25x2.05 q no caso seria = 30.75 ele retorna 30.749999999999996, como retiro esses numeros quebrados?
mais uma vez obrigado pela atencao!
Certo coloquei em Double e deu certo mas se faco uma operacao 25x2.05 q no caso seria = 30.75 ele retorna 30.749999999999996, como retiro esses numeros quebrados?
mais uma vez obrigado pela atencao!
[mais uma vez] Que tal usando BigDecimal que te dá a possibilidade de definir o tipo de arredondamento ?
M
Man_United
entao tentei implementar usando BigDecimal mas n to conseguindo por isso optei por Double poderia me falar o q devo mudar para invez de usar double usar BigDecimal,obrigado!
jMarcel
Trunque o valor antes de transforma-lo em string de novo.
Acredito que a sobrecarga abaixo ajude:
Certo coloquei em Double e deu certo mas se faco uma operacao 25x2.05 q no caso seria = 30.75 ele retorna 30.749999999999996, como retiro esses numeros quebrados?
mais uma vez obrigado pela atencao!
nas 2 primeiras linha o calculo fico correto mas na linha 3,4,5 repare que ele oculta os centavos e isso nao pode acontecer o q faco? vlw brother
Giulliano
ow loko ta complicado ae hein…segue exemplo
Stringvalor1="2.5604650";Stringvalor2="3.50";BigDecimalsoma=newBigDecimal(valor1);BigDecimalresultado=soma.add(newBigDecimal(valor2));resultado=resultado.setScale(2,BigDecimal.ROUND_HALF_UP);System.out.println(resultado);//Aqui sai 6.06
M
Man_United
Primeiro muito obrigado Giulliano por sua atencao deu certinhu fis alguns testes aqui funciono perfeito! so falto uma ultima coisinha isso se possivel e claro, testei varios valores mas se o valor1 for 1999.00 e o valor2 for 10.00 e fizermos a multiply ele retorna assim 19990.00 consigo fazer com que ele retorne 19.999.00 ? com o (.) indicando mil ? obrigado por sua forte atencao amigo!