Caso o quantedd seja 1.3 por exemplo, e a quanti 3, a multiplicação deles resulta em 3,888888889, ou algo do tipo...
O que eu posso fazer para continuar tendo casa com vírgula, mais certinho (3*1,3 = 3,9)?
Stringquanted="1.3";Floatquantedd=Float.parseFloat(quanted);Stringpreco="3";Floatprecoo=Float.parseFloat(preco);Floatquanti=quantedd*precoo;// formatando o número, o ".2" ali esta dizendo que vao ter 2 cadas apos a virgula// f indica que é um float (jah te adianto que nao existe double)// dá uma procurada sobre String.format que vc vai entender melhor// basicamente esse código formata o número para reduzir as casas decimais, com o arredondamento ele bota para a forma que você pediu 3.90Stringformatada=String.format("%1$.2f",quanti);System.out.println(formatada);
o comportamento das casas decimais não é muito fácil de entender não … eu tambem nun sei… se vc quiser pode esquisar o assunto o modificador strictfp talvez faça algo … nao sei procura ele no google c vai ver
o jeito acima detorna 3,90 se vc não quiser com virgula e sim ponto é só vc substituir a linha do format por:
Caso o quantedd seja 1.3 por exemplo, e a quanti 3, a multiplicação deles resulta em 3,888888889, ou algo do tipo...
O que eu posso fazer para continuar tendo casa com vírgula, mais certinho (3*1,3 = 3,9)?
Não intendi porque ele faz 1,3 * 3 = 3,888889...
Nem todos os numero são representáveis com float. Não utilize float ou double para calculos se vc não sabe trabalhar com eles ( pela sua pergunta vc não sabe ;) ).
Utilize BigDecimal para fazer esse tipo de calculo.