Results 1 to 3 of 3

Thread: Money to Words

  1. #1
    javanewbie is offline Member
    Join Date
    Jun 2008
    Location
    Australia
    Posts
    43
    Rep Power
    0

    Default Money to Words

    Good day to everyone.

    Right here, I do have here a program that allows numbers to convert them into words.

    Java Code:
    import java.io.*;
    
    class MoneyConversion {
    	
    	public static void main(String[] args) {
        	EnglishDecimalFormat f = new EnglishDecimalFormat();
        	System.out.println("*** " + f.convert(0));
        	System.out.println("*** " + f.convert(1));
        	System.out.println("*** " + f.convert(16));
        	System.out.println("*** " + f.convert(100));
        	System.out.println("*** " + f.convert(118));
        	System.out.println("*** " + f.convert(200));
        	System.out.println("*** " + f.convert(219));
        	System.out.println("*** " + f.convert(800));
        	System.out.println("*** " + f.convert(8010));
        	System.out.println("*** " + f.convert(1316));
        	System.out.println("*** " + f.convert(1000000));
        	System.out.println("*** " + f.convert(2000000));
        	System.out.println("*** " + f.convert(3000200));
        	System.out.println("*** " + f.convert(700000));
        	System.out.println("*** " + f.convert(9000000));
        	System.out.println("*** " + f.convert(123456789));
        	System.out.println("*** " + f.convert(-45));
    	}
      
    	private static final String[] majorNames = {
        "",
        " thousand",
        " million",
        " billion",
        " trillion",
        " quadrillion",
        " quintillion"
        };
    
      	private static final String[] tensNames = {
        "",
        " ten",
        " twenty",
        " thirty",
        " fourty",
        " fifty",
        " sixty",
        " seventy",
        " eighty",
        " ninety"
        };
    
      	private static final String[] numNames = {
        "",
        " one",
        " two",
        " three",
        " four",
        " five",
        " six",
        " seven",
        " eight",
        " nine",
        " ten",
        " eleven",
        " twelve",
        " thirteen",
        " fourteen",
        " fifteen",
        " sixteen",
        " seventeen",
        " eighteen",
        " nineteen"
        };
    
     	private String convertLessThanOneThousand(int number) {
        String soFar;
    
        	if (number % 100 < 20){
            	soFar = numNames[number % 100];
            	number /= 100;
           	}
        	else {
            	soFar = numNames[number % 10];
            	number /= 10;
    
            	soFar = tensNames[number % 10] + soFar;
            	number /= 10;
           	}
        
        	if (number == 0) return soFar;
        	return numNames[number] + " hundred" + soFar;
    	}
    
    	public String convert(int number) {
        /* special case */
        	if (number == 0) { return "zero"; }
    
        	String prefix = "";
    
    	    if (number < 0) {
        	    number = -number;
            	prefix = "negative";
          	}
    
        	String soFar = "";
        	int place = 0;
    
        	do {
          		int n = number % 1000;
          	
          		if (n != 0){
             		String s = convertLessThanOneThousand(n);
             		soFar = s + majorNames[place] + soFar;
            	}
          		place++;
          		number /= 1000;
          	
          	} while (number > 0);
    
        	return (prefix + soFar).trim();
    	}
    }
    
    
    
        /*
        *** zero
        *** one
        *** sixteen
        *** one hundred
        *** one hundred eighteen
        *** two hundred
        *** two hundred nineteen
        *** eight hundred
        *** eight hundred one
        *** one thousand three hundred sixteen
        *** one million
        *** two million
        *** three million two hundred
        *** seven hundred thousand
        *** nine million
        *** one hundred twenty three million four hundred 
        **                fifty six thousand seven hundred eighty nine
        *** negative fourty five
        */
    I'm still finding a way where I can add up decimal values.

    Example:

    123.45 = one hundred twenty three and forty five cents.

    Anyone knows how?


    Thanks in advance.

  2. #2
    Nicholas Jordan's Avatar
    Nicholas Jordan is offline Senior Member
    Join Date
    Jun 2008
    Location
    Southwest
    Posts
    1,018
    Rep Power
    8

    Default one idea

    Java Code:
    if( ( number - 10 ) > 0 ){StringBuffer.append();//}
    if( ( number - 100 ) > 0 ){StringBuffer.append();//}
    if( ( number - 1000 ) > 0 ){StringBuffer.append();//}
    modulo operator does the opposite of what you want to do, use StringBuffer to build up what is written to System.out.

    Just a short, once through. Other places depend on this being worked first.
    Introduction to Programming Using Java.
    Cybercartography: A new theoretical construct proposed by D.R. Fraser Taylor

  3. #3
    Norm's Avatar
    Norm is online now Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    17,902
    Rep Power
    25

    Default

    Convert the number to string. Then use the position of each character in the string to determine what value it is. Sort of like you do when you look at a number.
    Split it at the decimal point
    For example 123.45 1 in hundreds position, 2 in 10s and 3 in unit
    then for the fraction. it has 2 positions, so 4 10s and 5 in unit

Similar Threads

  1. Scrambling Words
    By Shadow22202 in forum New To Java
    Replies: 9
    Last Post: 04-30-2008, 04:51 AM
  2. help w words
    By Gilgamesh in forum New To Java
    Replies: 5
    Last Post: 11-21-2007, 07:15 PM
  3. program help: Extracting words from a string
    By toad in forum New To Java
    Replies: 1
    Last Post: 11-04-2007, 07:39 PM
  4. Analyze a string of words
    By zoe in forum Advanced Java
    Replies: 2
    Last Post: 07-26-2007, 11:01 AM
  5. Aspose.Words for Java - 2.1.0.0
    By levent in forum Java Software
    Replies: 0
    Last Post: 05-24-2007, 11:08 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •