From: Fer# [mailto:fernando.mdelacueva / gmail.com] : # irb(main):003:0> (0...arbitrary_number.to_s.length).map{|digit| # arbitrary_number.to_s.split('')[digit]} # => ["1","2","3"] forgive my ignorance, but why are you splitting them and rebuilding back the array. I mean why not, # arbitrary_number.to_s.split '' # => ["1","2","3"] and it works for signed and float too # arbitrary_number=-123.45 => -123.45 # arbitrary_number.to_s.split '' => ["-", "1", "2", "3", ".", "4", "5"] kind regards -botp