Current location: Hot Scripts Forums » Programming Languages » Everything Java » Still calculation problems


Still calculation problems

Reply
  #1 (permalink)  
Old 12-17-06, 08:20 AM
tdunk tdunk is offline
New Member
 
Join Date: Dec 2006
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Still calculation problems

My mortgage GUI still gives me a result looking like this: .000046828174
Its not calculating correctly or giving me a dollar amount type answer.
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;

public class Calculator extends JFrame implements ActionListener {
private JPanel panelAdder;
private JLabel labela;
private JLabel labelt;
private JLabel labelr;
private JTextField textFieldAmount;
private JTextField textFieldTerm;
private JTextField textFieldRate;
private JTextField textFieldResult;
private JButton buttonCalc;

public Calculator() {
  initComponents();
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
  pack();

  // Add Listeners
  buttonCalc.addActionListener(this);
}

public void initComponents() {
 //Initialize Components
 panelAdder = new JPanel();
 labela = new JLabel("Amount");
 textFieldAmount = new JTextField();
 labelt = new JLabel("Term");
 textFieldTerm = new JTextField();
 labelr = new JLabel("Rate");
 textFieldRate = new JTextField();
 textFieldResult = new JTextField();
 buttonCalc = new JButton("Calculate");

 //Set Object Attributes
 textFieldResult.setEditable(false);
 textFieldResult.setColumns(8);
 textFieldAmount.setColumns(6);
 textFieldTerm.setColumns(2);
 textFieldRate.setColumns(2);

 Container contentPane = getContentPane();
 contentPane.setLayout(new FlowLayout());

 //Lets add the components to the panel
 panelAdder.add(labela);
 panelAdder.add(textFieldAmount);
 panelAdder.add(labelt);
 panelAdder.add(textFieldTerm);
 panelAdder.add(labelr);
 panelAdder.add(textFieldRate);
 panelAdder.add(buttonCalc);
 panelAdder.add(textFieldResult);

 contentPane.add(panelAdder);
}

public static void main(String[] args) {
  Calculator frame = new Calculator();
}

private void setResultValue() {
   double amount = Double.parseDouble (textFieldAmount.getText());
   double term =   Double.parseDouble(textFieldTerm.getText())*12;
   double rate =   Double.parseDouble(textFieldRate.getText()) / 100.;
   double result = amount * ( rate * Math.pow ( ( 1 + rate ), term ) ) / ( Math.pow( ( 1 + rate ), term ) - 1 );

   textFieldResult.setText(Double.toString(result));
}

public void actionPerformed(ActionEvent event) {
    if (event.getSource() == buttonCalc) {
        setResultValue();
    }
}
}
Reply With Quote
  #2 (permalink)  
Old 12-17-06, 07:40 PM
King Coder King Coder is offline
Community VIP
 
Join Date: Jan 2006
Posts: 703
Thanks: 0
Thanked 0 Times in 0 Posts
You changed your result variable. This code works:

Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import java.text.DecimalFormat;
public class Calculator extends JFrame implements ActionListener {
private JPanel panelAdder;
private JLabel labela;
private JLabel labelt;
private JLabel labelr;
private JTextField textFieldAmount;
private JTextField textFieldTerm;
private JTextField textFieldRate;
private JTextField textFieldResult;
private JButton buttonCalc;

public Calculator() {
  initComponents();
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
  pack();

  // Add Listeners
  buttonCalc.addActionListener(this);
}

public void initComponents() {
 //Initialize Components
 panelAdder = new JPanel();
 labela = new JLabel("Amount");
 textFieldAmount = new JTextField();
 labelt = new JLabel("Term");
 textFieldTerm = new JTextField();
 labelr = new JLabel("Rate");
 textFieldRate = new JTextField();
 textFieldResult = new JTextField();
 buttonCalc = new JButton("Calculate");

 //Set Object Attributes
 textFieldResult.setEditable(false);
 textFieldResult.setColumns(8);
 textFieldAmount.setColumns(6);
 textFieldTerm.setColumns(2);
 textFieldRate.setColumns(2);

 Container contentPane = getContentPane();
 contentPane.setLayout(new FlowLayout());

 //Lets add the components to the panel
 panelAdder.add(labela);
 panelAdder.add(textFieldAmount);
 panelAdder.add(labelt);
 panelAdder.add(textFieldTerm);
 panelAdder.add(labelr);
 panelAdder.add(textFieldRate);
 panelAdder.add(buttonCalc);
 panelAdder.add(textFieldResult);

 contentPane.add(panelAdder);
}

public static void main(String[] args) {
  Calculator frame = new Calculator();
}

private void setResultValue() {
   double amount = Double.parseDouble (textFieldAmount.getText());
   double term =   Double.parseDouble(textFieldTerm.getText())*12;
   double rate =   Double.parseDouble(textFieldRate.getText()) / 100.;
   double result = amount * (Math.pow(1+(rate/12), term) * rate/12) / (Math.pow(1 + rate/12, term) - 1);

   DecimalFormat df = new DecimalFormat("#,###.##");
   textFieldResult.setText(df.format(result));
}

public void actionPerformed(ActionEvent event) {
    if (event.getSource() == buttonCalc) {
        setResultValue();
    }
}
}
__________________
my site
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
IE problems with encoding and displaying pages kittenesque HTML/XHTML/XML 1 10-21-06 04:59 PM
Password Problems in VB6 iceiceady Visual Basic 6 03-28-06 03:17 PM
Improve MATH calculation speed & DI scores today- CrackMATH from IIT and IIM alumni mbasushil General Advertisements 0 12-16-04 04:29 AM
2 spacing/alignment problems Arowana HTML/XHTML/XML 0 01-07-04 11:58 AM


All times are GMT -5. The time now is 05:41 PM.
vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.