refining a programme

Reply

Join Date: Jul 2007
Posts: 57
Reputation: piers is an unknown quantity at this point 
Solved Threads: 2
piers piers is offline Offline
Junior Poster in Training

refining a programme

 
0
  #1
Oct 11th, 2007
okay I have been working on a little project of my own for a while.
At the moment it prints out the chapters read and once 100% of the chapters read is greater than 100 it shows on the next line of my code the number of times the book is read.
Now problem is that when the book is read 4 times it shows as %400. I am sure this can be done with either an if statement or a for loop but I wouldnt know where to start. I also know it involves my 2 variables b and show. So any ideas or if you could point me in the right direction that would be most helpful.


import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class percentbible extends JFrame implements ActionListener
{
public percentbible()
{
setLayout(new BorderLayout(550,550));
JButton bibone =new JButton ("percentage of bible complete /n calculation ");
add(bibone,BorderLayout.NORTH);

bibone.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String a;
//enter in number for a string
a=JOptionPane.showInputDialog(null,"enter chapters of bible read","",JOptionPane.INFORMATION_MESSAGE);
//turn string into number
long num = Long.parseLong(a);
long chapno = 1189;



double calc= ((double)num/(double)chapno)*100.0;
String show;
//convert integer into string
show = Double.toString(calc);
//display calculation
String b; // string for printing out chapters read
long chapread = num; //the number taken in from the chapters read
long timesbookread = chapread/chapno; //calulation to work out number of times read bible
b = Long.toString(timesbookread); // number goes into the string

JOptionPane.showMessageDialog(null,show+"\n no of times reading whole book"+b,"percentage of chapters read",JOptionPane.INFORMATION_MESSAGE);
}



}
Reply With Quote Quick reply to this message  
Join Date: May 2007
Posts: 4,438
Reputation: Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of Ezzaral has much to be proud of 
Solved Threads: 510
Moderator
Featured Poster
Ezzaral's Avatar
Ezzaral Ezzaral is offline Offline
Industrious Poster

Re: refining a programme

 
0
  #2
Oct 11th, 2007
You just need to use the mod operator on your percentComplete calculation.
  1. int chaptersRead = 1500;
  2. int chaptersInBook = 1189;
  3. System.out.println("total percent read = "+(chaptersRead/(float)chaptersInBook*100f));
  4.  
  5. // with mod operation to reduce to percent complete for the current reading
  6. float percentOfBook = (chaptersRead/(float)chaptersInBook*100f) % 100f;
  7. System.out.println("percentOfBook = "+percentOfBook);
  8.  
  9. // or a variation on the same calc
  10. percentOfBook = (chaptersRead%chaptersInBook) / (float)chaptersInBook * 100f;
  11. System.out.println("percentOfBook = "+percentOfBook);

Please use code tags when you post code like this, as it will make it much more readable with the formatting preserved. You should also consider making your variable names more clear instead of using abbreviations. It will help your own clarity of the program as well as others who are reading it.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC