From: "Wayne E. Seguin" Date: 2007-07-08T00:08:04+09:00 Subject: Re: array and data types --Apple-Mail-3--644740706 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed On Jul 07, 2007, at 10:56 , zabouth wrote: > i have looked at all the ruby manual but i cant find no way of doing > this I am very new to ruby > so here is my problem > ok first here is my code > > sum = "5:5:5" > sum = sum.split(":") > sum = sum.inject {|sum, x| sum + x } > puts sum > > problem is that when you use split it splits the values into strings > what i need to know is how do i change all the values in the array sum > eg > "5","5","5" > to floating point numbers > i just cant work it out any help would be much appreciated Well first your fix: puts "5:5:5".split( ":" ).inject( 0.0 ) { | sum, x | sum + x.to_f } If this is something that you plan on using all the time you can define a new method on the String class like so: class String def delimited_sum( delimiter = ' ' ) # Default delimiter is a space self.split( delimiter ).inject( 0.0 ) { | sum, x | sum + x.to_f } end end "5:5:5".delimited_sum( ':' ) => 15 -- Wayne E. Seguin Sr. Systems Architect & Systems Admin wayneseguin@gmail.com --Apple-Mail-3--644740706--