convert number to english word

Discussion in 'Ruby' started by Vetrivel Vetrivel, Mar 31, 2009.

  1. Vetrivel Vetrivel, Mar 31, 2009
    #1
    1. Advertising

  2. Vetrivel Vetrivel

    James Gray Guest

    On Mar 31, 2009, at 11:26 AM, Vetrivel Vetrivel wrote:

    > How to convert number to word.
    > Ex
    > 8
    > eight
    > 555
    > five hundered and fiftyfive


    Check the solutions to this old Ruby Quiz:

    http://rubyquiz.com/quiz25.html

    James Edward Gray II
     
    James Gray, Mar 31, 2009
    #2
    1. Advertising

  3. James Gray wrote:
    > On Mar 31, 2009, at 11:26 AM, Vetrivel Vetrivel wrote:
    >
    >> How to convert number to word.
    >> Ex
    >> 8
    >> eight
    >> 555
    >> five hundered and fiftyfive

    >
    > Check the solutions to this old Ruby Quiz:
    >
    > http://rubyquiz.com/quiz25.html
    >
    > James Edward Gray II



    I need Ruby Module to use this...
    --
    Posted via http://www.ruby-forum.com/.
     
    Vetrivel Vetrivel, Mar 31, 2009
    #3
  4. Vetrivel Vetrivel

    Loga Ganesan Guest

    Vetrivel Vetrivel wrote:
    > James Gray wrote:
    >> On Mar 31, 2009, at 11:26 AM, Vetrivel Vetrivel wrote:
    >>
    >>> How to convert number to word.
    >>> Ex
    >>> 8
    >>> eight
    >>> 555
    >>> five hundered and fiftyfive

    >>
    >> Check the solutions to this old Ruby Quiz:
    >>
    >> http://rubyquiz.com/quiz25.html
    >>
    >> James Edward Gray II

    >
    >
    > I need Ruby Module to use this...


    Refer this URL:
    http://refactormycode.com/codes/628-displaying-numbers-to-words

    There is a module called linguistics in ruby to do that.
    --
    Posted via http://www.ruby-forum.com/.
     
    Loga Ganesan, Apr 4, 2009
    #4
  5. Vetrivel Vetrivel

    trans Guest

    On Mar 31, 12:26=A0pm, Vetrivel Vetrivel <>
    wrote:
    > How to convert number to word.
    > Ex
    > =A0 =A0 =A0 =A08
    > eight
    > =A0 =A0 =A0 =A0 =A0 =A0555
    > five =A0hundered and fiftyfive


    Check out the <a href=3D"http://english.rubygorge.org">English</a> gem
    too.

    T.
     
    trans, Apr 4, 2009
    #5
  6. Nobuhiro IMAI, Apr 4, 2009
    #6
  7. Vetrivel Vetrivel

    jazzez ravi Guest

    Hi Vetrivel,

    try this ..


    class Fixnum

    def english_word
    @h = {0=>"zero", 1=>"One", 2=>"Two", 3=>"Three", 4=>"Four", 5=>"Five",
    6=>"six", 7=>"seven", 8=>"Eight",
    9=>"Nine",10=>"Ten",11=>"Eleven",12=>"Twelve",13=>"Thirteen",14=>"Fourteen",15=>"Fifteen",16=>"Sixteen",17=>"Seventeen",18=>"Eighteen",19=>"Nineteen",20=>"Twenty",30=>"Thirty",40=>"Fourty",50=>"Fifty",60=>"Sixty",70=>"Seventy",80=>"Eighty",90=>"Ninty"}
    @i=0
    @array=[]
    @result=""
    if self > 99
    str_num=self.to_s #@num.to_s
    str_num_len=str_num.length
    str_full_num=str_num.insert(0,"0"*(11-str_num_len))
    str_full_num=str_num.insert(8,"0")
    str_full_num.scan(/../) { |x| @array<<x }
    6.times do
    self.def_calc
    @i+=1
    end
    else
    if self > 9
    puts
    (self.proc_double_dig((self/10)*10))+(self.proc_single_dig(self%10))
    else
    if self > 0
    puts self.proc_single_dig(self)
    else
    return "AMOUNT NOT KNOWN or NILL"
    end
    end
    end
    end


    def def_calc
    case @i
    when 0
    str=self.proc_unit(@array[@i])
    if (str.scan(/\w+/)).length!=0
    then str=str+ "hundred & "
    @result=@result+str
    end
    when 1
    str=self.proc_unit(@array[@i])
    if (str.scan(/\w+/)).length!=0
    then str=str+ " Crore, "
    @result=@result+str
    end
    when 2
    str=self.proc_unit(@array[@i])
    if (str.scan(/\w+/)).length!=0
    then str=str+ " Lakh, "
    @result=@result+str
    end
    when 3
    str=self.proc_unit(@array[@i])
    if (str.scan(/\w+/)).length!=0
    then str=str+ " Thousand, "
    @result=@result+str
    end
    when 4
    str=self.proc_unit(@array[@i])
    if (str.scan(/\w+/)).length!=0
    then str=str+ " Hundred, "
    @result=@result+str
    end
    when 5
    str=self.proc_unit(@array[@i])
    if (str.scan(/\w+/)).length!=0
    then str=str+ ". "
    @result=@result+str
    end
    print @result.sub(/..$/,"")
    else
    end
    end

    def proc_unit(x)
    if x.to_i>0
    if x.to_i<=10
    return self.proc_single_dig(x.to_i)
    else
    if x.to_i<=20
    return self.proc_double_dig(x.to_i)
    else
    return
    (self.proc_double_dig((x.to_i/10)*10))+(self.proc_single_dig(x.to_i%10))
    end
    end
    end
    return ""
    end

    def proc_double_dig(z)
    if z==0
    return ""
    else
    return @h[z]
    end
    end

    def proc_single_dig(y)
    if y==0
    return ""
    else
    return @h[y]
    end
    end
    protected :def_calc, :proc_unit, :proc_double_dig, :proc_single_dig

    end


    puts 453645445.english_word

    #FourtyFive Crore, Thirtysix Lakh, FourtyFive Thousand, Four Hundred,
    FourtyFive


    Regards,
    P.Raveendran
    --
    Posted via http://www.ruby-forum.com/.
     
    jazzez ravi, Apr 6, 2009
    #7
  8. Vetrivel Vetrivel

    jazzez ravi Guest

    jazzez ravi, Apr 6, 2009
    #8
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?UmFlZCBTYXdhbGhh?=

    English/English DLL

    =?Utf-8?B?UmFlZCBTYXdhbGhh?=, Oct 15, 2005, in forum: ASP .Net
    Replies:
    2
    Views:
    1,684
    =?Utf-8?B?UmFlZCBTYXdhbGhh?=
    Oct 16, 2005
  2. IchBin
    Replies:
    1
    Views:
    793
  3. Pater Maximus
    Replies:
    1
    Views:
    339
    Ian Parker
    Oct 20, 2004
  4. KYG
    Replies:
    2
    Views:
    929
    Ian Collins
    Aug 18, 2008
  5. Terry Reedy
    Replies:
    0
    Views:
    406
    Terry Reedy
    Jun 25, 2010
Loading...

Share This Page