Olá pessoal,
eu estou com uma dúvida aqui
no DecimalFormat e estava fazendo uns testes aqui:
publicstaticvoidmain(String[]args){Doublevalor=0.3265;DecimalFormatSymbolsdfs=newDecimalFormatSymbols();dfs.setDecimalSeparator('.');DecimalFormatdformt=newDecimalFormat("0.00",dfs);Stringresultado=dformt.format(valor);//Imprimi 0.33 eu quero sem o arredondamento preciso do 0.32 System.out.println(resultado);}
Quando eu mando imprimir o resultado a
saída é arredondada para cima, o
que eu devo fazer para que o arredondamento
não ocorra?
Por que você não quer que o valor não seja arredondado?
ricardocomp
Jóia entanglement?
pois eu estou trabalhando
com precisão exata não pode
existir arredondamento
no que eu preciso fazer.
Por isso não posso ter arredondamentos
0.33 é diferente de 0.32 é uma diferença
que não pode ocorrer.
Será que vc entanglement
ou alguém poderia me ajudar?
[]'s.
E
entanglement
A “precisão exata” é usar todos os dígitos.
Arredondar (que é o que DecimalFormat mostra) e truncar (que é o que você quer fazer) não são exatos; um peca pelo excesso e outro pela falta.
Acho que você ainda não entendeu o seu problema direito.
Se você precisa, por exemplo, calcular prestações (por exemplo, R$ 1000,00 / 12 dá 11 prestações de 83,33 e mais uma de 83,37, para compensar os centavos), faça as contas com centavos, ou seja, multiplique o valor por 100 (long), etc.
ricardocomp
Jóia entanglement?
me desculpa é isso mesmo
que eu preciso fazer
é o truncamento
vc ou alguém sabe como
eu devo fazer o truncamento
no DecimalFormat?
[]'s.
ricardocomp
O que eu preciso fazer realmente
é isso daqui entanglement:
publicStringcalculaCoefCorrelacao(Absorbancia[]absorbancia)throwsAnaliseException{
DecimalFormatSymbolsdfs=newDecimalFormatSymbols();dfs.setDecimalSeparator('.');DecimalFormatdf=newDecimalFormat("0.000",dfs);doublerQuad=tReg.calculaRegressao(absorbancia,concentracao);if(rQuad>=0.99){
flag=true;}
else{
thrownewAnaliseException("O valor do R² é menor do que 0.99!");}
//TesteJOptionPane.showMessageDialog(null,"Valor do R² = "+df.format(rQuad));returndf.format(rQuad);}
Preciso calcular um coeficiente de correlação com 3
casas decimais mas fazendo o truncamento.
[]'s.
E
entanglement
Mais estranho ainda você precisar do coeficiente de correlação truncado, em vez de arredondado. De qualquer maneira, você pode usar um BigDecimal, e usar o método setScale. Procure aqui algum exemplo no GUJ.