[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

convert number to english word

Vetrivel Vetrivel

3/31/2009 4:26:00 PM


How to convert number to word.
Ex
8
eight
555
five hundered and fiftyfive
--
Posted via http://www.ruby-....

7 Answers

James Gray

3/31/2009 4:30:00 PM

0

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/q...

James Edward Gray II

Vetrivel Vetrivel

3/31/2009 4:39:00 PM

0

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/q...
>
> James Edward Gray II


I need Ruby Module to use this...
--
Posted via http://www.ruby-....

Loga Ganesan

4/4/2009 1:07:00 PM

0

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/q...
>>
>> James Edward Gray II
>
>
> I need Ruby Module to use this...

Refer this URL:
http://refactormycode.com/codes/628-displaying-number...

There is a module called linguistics in ruby to do that.
--
Posted via http://www.ruby-....

Trans

4/4/2009 3:19:00 PM

0



On Mar 31, 12:26=A0pm, Vetrivel Vetrivel <vetrivel.bk...@gmail.com>
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... gem
too.

T.

Nobuhiro IMAI

4/4/2009 3:58:00 PM

0

Hello,

On Wed, Apr 1, 2009 at 1:26 AM, Vetrivel Vetrivel
<vetrivel.bksys@gmail.com> wrote:
>
> How to convert number to word.
> Ex
> =A0 =A0 =A0 8
> eight
> =A0 =A0 =A0 =A0 =A0 555
> five =A0hundered and fiftyfive

Integer#to_alphabetic from
http://github.com/technohippy/ordinal-accessors-for-an-array-objec...
ster
sounds nice for me :).
--=20
Nobuhiro IMAI

Raveendran Jazzez

4/6/2009 6:31:00 AM

0

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-....

Raveendran Jazzez

4/6/2009 6:35:00 AM

0

Hi vetri,

The above code works only upto billions.


Regards,
P.raveendran
http://raveendran.wor...
--
Posted via http://www.ruby-....