Arredondar os números

Olá.
Por acaso tem alguma função no Java que faz um número arredondar conforme o necessário?
Por exemplo: 1.000000000000004, tem como fazer isso virar simplesmente 1?!
Fiz um programa só que tá dando umas coisas estranhas… aparece esses números do nada… :sentido:
Valeu :smiley:

blz cara !!!
é o seguinte :

no java existe a função ceil() , que serve para arredondar um número do tipo double para o seu próximo inteiro. A sintaxe é a seguinte:

Math.ceil(valor do tipo double)

abaixo segue um exemplo:

class Arredonda
 {
 public static void main (String args[])
  {
  double A=5.2,B=5.6,C=-5.8;
  System.out.println("Arredondando  5.2  =  " + Math.ceil(A));
  System.out.println("Arredondando  5.6  =  " + Math.ceil(B));
  System.out.println("Arredondando -5.8  = " + Math.ceil(C));
  }
 }

Augusto César!!!

Kra da uma olhada no link q vc vai ver como funciona!!

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=5022&highlight=

Qualquer duvida vc posta ai q nois da um jeito!!

Espero q tenha ajudado!!

Abracao e te +

[quote=“augusto19”]blz cara !!!
é o seguinte :

no java existe a função ceil() , que serve para arredondar um número do tipo double para o seu próximo inteiro. A sintaxe é a seguinte:

Math.ceil(valor do tipo double)

abaixo segue um exemplo:

class Arredonda
 {
 public static void main (String args[])
  {
  double A=5.2,B=5.6,C=-5.8;
  System.out.println("Arredondando  5.2  =  " + Math.ceil(A));
  System.out.println("Arredondando  5.6  =  " + Math.ceil(B));
  System.out.println("Arredondando -5.8  = " + Math.ceil(C));
  }
 }

Augusto César!!![/quote]]

Usando o método ceil() da classe Math, não irá funcionar, pois ele arredonda pra cima, independendo dos valores das casas decimais. Por exemplo, Math.ceil(1.000000000000004) irá retornar 2 e não 1.
O método correto para o seu caso seria o método round (double ou float) da classe Math. Por exemplo, Math.round(1.000000000000004) retornaria 1, ou seja, ele faz a aproximação para o inteiro mais próximo.

Blz?

Valeu mesmo… agradeço a todos que responderam…
Agora funcionou… :lol:
Aproveitando a ocasião, tem alguma forma de arredondar números na casa decimal? Por exemplo, tenho o número 1.0000002, certo? Tem como arredondar esse número pra 1.1?

Valeu de novo… :slight_smile:

Kra, infelizmente n tem n… ou ao menos q eu esteja muito enganado.
So q n seu caso note q o numero 1,000000000004 ta muito mais proximo de ser 1.0 quando for aproximado, do que 1.1 entao ele na tera como arredondar n!!!

Espero q sua duvida tenha cido exclarecida… Qualquer outra, posta ai q o povo da uma resposta!!

Abracao e te +

Valeu Ratinho…
Acho que meu exemplo não foi muito bom…
Outro exemplo…
Se o número é 1.59 , tem como arredondar pra 1.6 ?
E vc tem razão a respeito do 1.00000004 estar mais perto do 1 do que do 1.1… :smiley:

Valeu novamente…

Olá!!
o .trim() tem relacao com as casas decimais? Ja usei mas ainda não intendi… rsrs

valeuzzzz!! 8)

P/ Rogoni

Que função é essa do .trim()? Isso daí existe mesmo?!
Eu usei como Math.trim() e isso não existe…

Falow…

Kra fiz esse aplicativo aqui pra vc dar uma olhada
Ai a parte q vc perguntou eu coloquei um comentario.

/* Aplicativo que define quanto será o salário bruto do vendedor
   sabendo que ele ganha X por mês mais 9% do que é vendido */

import javax.swing.JOptionPane;
import java.text.DecimalFormat;

public class Vendedor {

  public static void main( String[]args ) {

	String entradasal, entrada;
	double sal_fixo, sal_bruto, vendas, total, porcentagem;

	total = 0;

	entradasal = JOptionPane.showInputDialog( " Digite o Salário Fixo " );
	sal_fixo = Double.parseDouble( entradasal );
		
	entrada = JOptionPane.showInputDialog( " Digite o valor da venda ou  -1  para calcular " );
	vendas = Double.parseDouble( entrada );

	  while(vendas != -1) {
		total = total + vendas;

		entrada = JOptionPane.showInputDialog( " Digite o valor de + uma venda ou  -1  para calcular " );
		vendas = Double.parseDouble( entrada );
	  }
// Candahar aqui q ele define quantas casas iram ser feitas
// No caso c vc quizesse aproximar par 1 casa depois da virgula
// Voce colocaria ( " 0.0 " )  
        DecimalFormat doisDigitos = new DecimalFormat( " 0.00 " );
	
	if(vendas != 0){
	  porcentagem = total * 9 / 100;
	  sal_bruto = sal_fixo + porcentagem;

	  JOptionPane.showMessageDialog( null,
	    " O Salário bruto é R$ " + doisDigitos.format( sal_bruto ), " ! Salário Bruto ! ",
	    JOptionPane.INFORMATION_MESSAGE );
	}
	
	else{  
		JOptionPane.showMessageDialog( null,
		" NENHUMA VENDA FOI INSERIDA ", " ! ATENÇÃO ! ",
		JOptionPane.WARNING_MESSAGE );

	}

	System.exit(0);

  }

}

Blz, qualquer coisa q vc me da um toque q esplico pra vc!!!

Abracao e te +

Valeu mesmo Ratinho…
O meu problema é o seguinte… fiz o código abaixo:

public class Exemplo  
{
  double exemplo (double e)
    {
      double ex = 9.3;        //qualquer valor aqui serve
      return ex;
    }
}

Esse código é um exemplo… Agora é que dá os problemas… Fiz uma classe pra testar valores pro ex:

public class Teste
{
  public static void main (String args [])
    {
      Exemplo t = new Exemplo();
      double limite = 1.0e-10;
      
      double x = -2.0;
      
      while (x <= 2.0)
       {
          if (t.exemplo(x) - 1 > limite) 
          {          
            System.out.println ("Não funciona para ex = " + x );
           }
         x = x + 0.1;
       }
   }
}

Aí que as coisas estranhas que acontecem… execute a classe Teste…
Ele vai imprimir:

Não funciona para e = -2.0
Não funciona para e = -1.9
Não funciona para e = -1.7999999999999998
Não funciona para e = -1.6999999999999997
Não funciona para e = -1.5999999999999996
Não funciona para e = -1.4999999999999996
Não funciona para e = -1.3999999999999995
Não funciona para e = -1.2999999999999994
Não funciona para e = -1.1999999999999993
Não funciona para e = -1.0999999999999992
Não funciona para e = -0.9999999999999992
Não funciona para e = -0.8999999999999992
Não funciona para e = -0.7999999999999993
Não funciona para e = -0.6999999999999993
Não funciona para e = -0.5999999999999993
Não funciona para e = -0.49999999999999933
Não funciona para e = -0.39999999999999936
Não funciona para e = -0.2999999999999994
Não funciona para e = -0.19999999999999937
Não funciona para e = -0.09999999999999937
Não funciona para e = 6.38378239159465E-16
Não funciona para e = 0.10000000000000064
Não funciona para e = 0.20000000000000065
Não funciona para e = 0.30000000000000066
Não funciona para e = 0.4000000000000007
Não funciona para e = 0.5000000000000007
Não funciona para e = 0.6000000000000006
Não funciona para e = 0.7000000000000006
Não funciona para e = 0.8000000000000006
Não funciona para e = 0.9000000000000006
Não funciona para e = 1.0000000000000007
Não funciona para e = 1.1000000000000008
Não funciona para e = 1.2000000000000008
Não funciona para e = 1.300000000000001
Não funciona para e = 1.400000000000001
Não funciona para e = 1.500000000000001
Não funciona para e = 1.6000000000000012
Não funciona para e = 1.7000000000000013
Não funciona para e = 1.8000000000000014
Não funciona para e = 1.9000000000000015

Muiiiiiiiiiito estranho… :sentido: O engraçado que as contas são simples, basta somar 0.1 ao valor …
Eu simplifiquei o código só pra te mostrar o que eu tava falando… muito esquisito não acha?
Então, eu queria que aparecesse os números acrescidos de 0.1, por exemplo, aparecer somente 1.1 , 1.2 , 1.3 , 1.4 , 1.5 e etc…
Valeu novamente :lol:

Ninguém tem uma resposta pro meu problema? :cry:

ola Candahar tai sobre o trim()

o trim elimina os espaços em branco ex:
String s = " spaces ";
JOptionPane.showMessageDialog(null,“sem espaço”+s.trin());
fica assim >> “spaces”

[quote=“Ejunior”]ola Candahar tai sobre o trim()

o trim elimina os espaços em branco ex:
String s = " spaces ";
JOptionPane.showMessageDialog(null,“sem espaço”+s.trin());
fica assim >> “spaces”[/quote]

Valeu Ejunior.
Mas o meu problema não era esse… mas é interessante essa função…
A respeito do problema que postei dias atrás, já dei um jeito… :lol: