944,196 Members | Top Members by Rank

Ad:
  • Java Discussion Thread
  • Unsolved
  • Views: 716
  • Java RSS
Oct 11th, 2007
0

refining a programme

Expand Post »
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);
}



}
Similar Threads
Reputation Points: 10
Solved Threads: 3
Junior Poster in Training
piers is offline Offline
68 posts
since Jul 2007
Oct 11th, 2007
0

Re: refining a programme

You just need to use the mod operator on your percentComplete calculation.
Java Syntax (Toggle Plain Text)
  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.
Moderator
Featured Poster
Reputation Points: 3239
Solved Threads: 839
Posting Genius
Ezzaral is offline Offline
6,761 posts
since May 2007

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC