DecimalFormat

Olá pessoal,
eu estou com uma dúvida aqui
no DecimalFormat e estava fazendo uns testes aqui:

public static void main(String[] args) {
        Double valor = 0.3265;

        DecimalFormatSymbols dfs = new DecimalFormatSymbols();
        dfs.setDecimalSeparator('.');
        DecimalFormat dformt = new DecimalFormat("0.00", dfs);


        String resultado = 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?

Será que alguém poderia me dar uma ajuda?

[]'s.

Por que você não quer que o valor não seja arredondado?

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.

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.

Jóia entanglement? :smiley:
me desculpa é isso mesmo
que eu preciso fazer
é o truncamento
vc ou alguém sabe como
eu devo fazer o truncamento
no DecimalFormat?

[]'s.

O que eu preciso fazer realmente
é isso daqui entanglement:

public String calculaCoefCorrelacao(Absorbancia[] absorbancia) throws AnaliseException{

        DecimalFormatSymbols dfs = new DecimalFormatSymbols();
        dfs.setDecimalSeparator('.');
        DecimalFormat df = new DecimalFormat("0.000", dfs);

        double rQuad = tReg.calculaRegressao(absorbancia, concentracao);
        
        if(rQuad >= 0.99){
            flag = true;
        }
        else{
            throw new AnaliseException("O valor do R² é menor do que 0.99!");
        }

        //Teste
        JOptionPane.showMessageDialog(null, "Valor do R² = " + df.format(rQuad));

        return df.format(rQuad);
    }

Preciso calcular um coeficiente de correlação com 3
casas decimais mas fazendo o truncamento.

[]'s.

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.

http://www.guj.com.br/posts/list/144005.java

Obrigado entanglement e erico_kl :smiley:
pela ajuda eu vou fazer os testes
aqui e qq coisa eu vou voltar aqui.

Abraço a todos.