Double e notação científica

5 respostas
K

Realize a operação abaixo: (números são todos do tipo double)
0+88888888
O resultado vai dar 8.8888888E7 (uma notação científica).
Toda operação envolvendo double, quando o número passa de 7 dígitos, ele converte automaticamente para notação científica (no meu caso aqui)
Eu não quero exibir notação científica. Quero exibir o resultado normal da operação, em decimal mesmo.
O que eu poderia fazer? preciso de um exemplo, pois tô começando agora com o java.

Obrigado aos amigos do guj que têm me ajudado muito.

Meu código tá assim:

String operando_1 = 88888888;

String operando_2 = 0;

double resultado = Double.valueOf(operando_1) + Double.valueOf(operando_2);

O resultado eu transformo em string e exibo em um JOptionPane.

5 Respostas

D

Você pode usar DecimalFormat para isso:

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

K

E isso ai galera , vcs têm sanado muitas das minhas duvidas tb , mas
têm uma que ainda ñ foi sanada , sobre a calculadora java , aquele que
havia no forum rodou bele , mas não estou conseguindo implementar
o fatorial , assim que o processo e colocado ele trava , vcs tem algum exemplo de fatorial pronto ou a calcu toda c/o fatorial p/me passar?
:thumbup:

D

Mostre como você fez a calculadora para vermos porque está dando erro.

K

Fala double , bele , segue a calculator , veja se vc consegue localizar o
erro , e na parte fatorial , o que preciso na verdade e que ele rode em comando simples mesmo , não sera preciso imagem ou coisas assim , tipo paschal mesmo manja? se puder dar um help ,valeu :thumbup:

[color=blue][b]import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.*;
public class Calculator extends JPanel implements ActionListener {

GridBagConstraints gbc = new GridBagConstraints(  );

JTextField theDisplay = new JTextField(  );
public Calculator(  ) {

gbc.weightx = 1.0;  gbc.weighty = 1.0;

gbc.fill = GridBagConstraints.BOTH;

ContainerListener listener = new ContainerAdapter(  ) {

public void componentAdded(ContainerEvent e) {

Component comp = e.getChild(  );

if (comp instanceof JButton)

((JButton)comp).addActionListener(Calculator.this);

}

};

addContainerListener(listener);

gbc.gridwidth = 4;

addGB(this, theDisplay, 0, 0);

// make the top row

JPanel topRow = new JPanel(  );

topRow.addContainerListener(listener);

gbc.gridwidth = 1;

gbc.weightx = 1.0;

addGB(topRow, new JButton(C), 0, 0);

gbc.weightx = 0.33;

addGB(topRow, new JButton("%"), 1, 0);

gbc.weightx = 1.0;

addGB(topRow, new JButton("+"), 2, 0 );

gbc.gridwidth = 4;

addGB(this, topRow, 0, 1);

gbc.weightx = 1.0;  gbc.gridwidth = 1;

// make the digits

for(int j=0; j<3; j++)

for(int i=0; i<3; i++)

addGB(this, new JButton("" + ((2-j)<em>3+i+1) ), i, j+2);

addGB(this, new JButton("" ! ((2-j)<em>3</em>i</em>2) ), i, j<em>2);

//! , * , Fatorial

addGB(this, new JButton("</em>"), 3, 2);

addGB(this, new JButton(u00F7), 3, 2);

// -, x, and divide

addGB(this, new JButton("-"), 3, 2);

addGB(this, new JButton(x), 3, 3);

addGB(this, new JButton(u00F7), 3, 4);

// make the bottom row

JPanel bottomRow = new JPanel(  );

bottomRow.addContainerListener(listener);

gbc.weightx = 1.0;

addGB(bottomRow, new JButton(0), 0, 0);

gbc.weightx = 0.33;

addGB(bottomRow, new JButton("."), 1, 0);

gbc.weightx = 1.0;

addGB(bottomRow, new JButton("="), 2, 0);

gbc.gridwidth = 4;

addGB(this, bottomRow, 0, 5);

}
void addGB(Container cont, Component comp, int x, int y) {

if ((cont.getLayout(  ) instanceof GridBagLayout) == false)

cont.setLayout(new GridBagLayout(  ));

gbc.gridx = x; gbc.gridy = y;

cont.add(comp, gbc);

}
public void actionPerformed(ActionEvent e) {

if (e.getActionCommand(  ).equals(C))

theDisplay.setText("");

else

theDisplay.setText(theDisplay.getText(  )

+ e.getActionCommand(  ));

}
public static void main(String[] args) {

JFrame f = new JFrame(Calculator);

f.addWindowListener(new WindowAdapter(  ) {

public void windowClosing(WindowEvent e) { System.exit(0); }

});

f.setSize(200, 250);

f.setLocation(200, 200);

f.setContentPane(new Calculator(  ));

f.setVisible(true);

}

}

[/b][/color]
D

Tá faltando calcular, né?? Esse código que você fez só faz colocar os numeros na tela.

Duas dicas:

  1. Crie uma classe calculadora que contenha as operações (soma, subtração, multiplicação, divisão, fatorial, etc.) que você deseja fazer e não as misture com a interface gráfica. A interface gráfica (se você for fazer) deve estar em outra classe e deve usar a classe calculadora.

  2. Fazer um fatorial é muito fácil. A definição de fatorial é:

x! = x * (x-1) * … * 2 * 1
ou ainda:

x! = 1, se x <= 1
x! = x * (x-1)!, se x > 1

Então você deve criar um método na classe calculadora que recebe como argumento um número inteiro e verifica se ele é menor ou igual a 1. Se for, retorne 1. Senão, retorne o número * fatorial(numero - 1). Fica algo parecido com isso, mas você tem que escrever na sintaxe do Java.

def fatorial(x)
   se x <= 1
       retorne 1;
   senão
       retorne x * fatorial(x-1);
fim

Com essas dicas, tente começar a fazer algo e se tiver alguma dificuldade poste aqui.

Criado 26 de abril de 2006
Ultima resposta 27 de abr. de 2006
Respostas 5
Participantes 3