読者です 読者をやめる 読者になる 読者になる

A Perfect Night For Bananafish

だがそれを語るには人生は短すぎる

数字を","で区切って通貨形式っぽくする

三桁毎にカンマ","を入れてみる。
数字の文字列をひっくり返して3桁毎に","を入れたらまた元に戻す。
to_money.rb

class Integer
	def to_money()
		self.to_s.reverse.gsub( /(\d{3})(?=\d)/, '\1,' ).reverse
	end
end

class Float
	def to_money()
		if self < 0
			m="-"
		else 
			m=""
		end
		/(\d*)(\..*$)/=~self.to_s
		i=$1
		d=$2
		m + i.reverse.gsub( /(\d{3})(?=\d)/, '\1,' ).reverse + d
	end
end

puts 1234567890.to_money
puts -1234567890.to_money
puts 1234567890.12345.to_money
puts -1234567890.12345.to_money
puts +1234567890.1234567890.to_money

実行結果

>ruby to_money.rb
1,234,567,890
-1,234,567,890
1,234,567,890.12345
-1,234,567,890.12345
1,234,567,890.12346