Truncamento

Alguem sabe como trabalhar com truncamento em Java.

Sei que a classe DecimalFormat trabalha com arredondamento, mas gostaria de trabalhar com truncamento. Alguem pode me ajudar???

vc poderia dar um exemplo do comportamento desejado? Fica mais facil assim, ja que pra mim “truncamento” quer dizer outra coisa :wink:

Olá Carioca… também não sei como o fazer… :frowning:

CV

o que o carioca quer é que no exemplo abaixo (por exemplo) … o valor retornado é “2.25” e ele gostaria que fosse “2.24”…

import javax.swing.*;
import java.text.*;

public class Truncate extends JFrame {
	
	private DecimalFormat formatoTruncado;

	public Truncate(double valor) {
		formatoTruncado = new DecimalFormat();
		formatoTruncado.setMaximumFractionDigits(2);
		JOptionPane.showMessageDialog(null, "" + formatoTruncado.format(valor));
	}

	public static void main(String[] args) {
		Truncate truncate = new Truncate(2.246);
	}
}

até mais…

Ah tá :smiley:

Isso se resolve através das funções Math.floor() e Math.ceil() :wink:

CV, como devo usar essas funções. Tentei mais não consegui o resultado esperado.

Arredondamento é um grande problema em java.

Vejamos, você precisa de arredondamento para mostrar um valor, não para fins matemáticos.

DecimalFormat usa o método ‘half even’ para arredondamento. Que é o método mais comum na engenharia, voce arredonda para o mais próximo ou para o par o no caso de equidistancia.

Não vou saber te responser porque essa classe não te permite controlar o arredondamento, só sei que não da. :frowning:

Porêm nem tudo está perdido!
Voce pode tentar usar a classe BigDecimal para fazer isso, ela te permite escolher entre 8 métodos de arredondamento diferentes.

http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

Bons estudos.