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
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…
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…
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?
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: