Convert string to number

Posted by Tkl1129 on Wed 13 Jul 2011 04:06 AM — 3 posts, 19,881 views.

Hong Kong #0
I want to convert a text format number to real digit number, but got fail at last, any suggestion? (actually I'm converting chinese word so the format is different.

Case : two thousand one hundred and six
result : 2106

I get start to use string.gsub to convert it become like this -> x = 2*1000+1*100+6
= 2000 + 100 + 6
= 2106

how ever..this format is string, cannot add up to be result...any method or any other idea to make this work?
thanks~


function convertdigit (a)

local x = a
	x = string.gsub (x,"ten","*10+")
        x = string.gsub (x,"hundred","*100+")
	x = string.gsub (x,"thousend","*1000+")
	x =	string.gsub (x,"one","1")
	x =	string.gsub (x,"two","2")
	x =	string.gsub (x,"three","3")
	x =	string.gsub (x,"four","4")
	x =	string.gsub (x,"five","5")
	x =	string.gsub (x,"six","6")
	x =	string.gsub (x,"seven","7")
	x =	string.gsub (x,"eight","8")
	x =	string.gsub (x,"nine","9")
	x =	string.gsub (x,"zero","0")

return r
end -- convertdigit



Australia Forum Administrator #1
http://www.gammon.com.au/forum/?id=10155


This is now supplied with MUSHclient, see the module:

words_to_numbers.lua

That ships in the MUSHclient "lua" directory.

Amended on Wed 13 Jul 2011 04:53 AM by Nick Gammon
USA #2
Tkl1129 said:
how ever..this format is string, cannot add up to be result...any method or any other idea to make this work?


local result = loadstring("return " .. your_string)()


The loadstring() function takes a string and compiles it as Lua, returning a function. So if you attach "return " before your arithmetic you can evaluate the math.