Converting numbers into English
-
What I would ask myself is: Why did you re-invent the wheel? Was this good value for money for your employer? There are many many solutions available to do this (for free) on the interwebs. Why did it need to be 'terse and fast' - surely better to be 'easily readable, debuggable and maintainable'?
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
1. Why not? 2. To learn the language. Beats the heck out of "Hello World". 3. For the same reason people draw doodles. 4. Why not? :)
-
How about to roman numerals ;)
Software Kinetics - Dependable Software news
Oh, yeah - that's fun - actually quite difficult!
-
Oh oh, that's not how you do phone numbers.
I wanna be a eunuchs developer! Pass me a bread knife!
ROFL!
-
You had to go no further than our very own CP[^] or I stole this from StuckOverflow...
public static string NumberToWords(int number)
{
if (number == 0)
return "zero";if (number < 0) return "minus " + NumberToWords(Math.Abs(number)); string words = ""; if ((number / 1000000) > 0) { words += NumberToWords(number / 1000000) + " million "; number %= 1000000; } if ((number / 1000) > 0) { words += NumberToWords(number / 1000) + " thousand "; number %= 1000; } if ((number / 100) > 0) { words += NumberToWords(number / 100) + " hundred "; number %= 100; } if (number > 0) { if (words != "") words += "and "; var unitsMap = new\[\] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; var tensMap = new\[\] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; if (number < 20) words += unitsMap\[number\]; else { words += tensMap\[number / 10\]; if ((number % 10) > 0) words += "-" + unitsMap\[number % 10\]; } } return words;
}
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
Yeah - I thought about doing it that way but it wasn't fun to write! I'm sure I overcomplicated it, but - whatever - I had fun!
-
1. Why not? 2. To learn the language. Beats the heck out of "Hello World". 3. For the same reason people draw doodles. 4. Why not? :)
That's it - it's a doodle!
-
mark merrens wrote:
Curmudgeonprofessional
ftfy
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
_Maxxx_ wrote:
Curmudgeonprofessional
Pompous ass. That should do it.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. Those who seek perfection will only find imperfection nils illegitimus carborundum me, me, me me, in pictures
-
Really? Convert's slow? Thanks!
-
A parser isn't really applicable here: you can't exactly parse a string of digits into English...
Convert.ToInt32(N % p);
Use a cast. There is only one useful method in Convert -- ChangeType. For all other uses for Convert, there are better alternatives. -
Convert.ToInt32(N % p);
Use a cast. There is only one useful method in Convert -- ChangeType. For all other uses for Convert, there are better alternatives.Noted - very good.
-
_Maxxx_ wrote:
Curmudgeonprofessional
Pompous ass. That should do it.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. Those who seek perfection will only find imperfection nils illegitimus carborundum me, me, me me, in pictures
Concur!
-
You had to go no further than our very own CP[^] or I stole this from StuckOverflow...
public static string NumberToWords(int number)
{
if (number == 0)
return "zero";if (number < 0) return "minus " + NumberToWords(Math.Abs(number)); string words = ""; if ((number / 1000000) > 0) { words += NumberToWords(number / 1000000) + " million "; number %= 1000000; } if ((number / 1000) > 0) { words += NumberToWords(number / 1000) + " thousand "; number %= 1000; } if ((number / 100) > 0) { words += NumberToWords(number / 100) + " hundred "; number %= 100; } if (number > 0) { if (words != "") words += "and "; var unitsMap = new\[\] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; var tensMap = new\[\] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; if (number < 20) words += unitsMap\[number\]; else { words += tensMap\[number / 10\]; if ((number % 10) > 0) words += "-" + unitsMap\[number % 10\]; } } return words;
}
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
Not very flexible.
-
How about to roman numerals ;)
Software Kinetics - Dependable Software news
I added that to my version last night. And today I wondered about adding support for doing thousands as hundreds, e.g. "twenty-five hundred".
-
Oh oh, that's not how you do phone numbers.
I wanna be a eunuchs developer! Pass me a bread knife!
Phone numbers aren't numbers.
-
Oh, yeah - that's fun - actually quite difficult!
Only as difficult as you like.
-
Not very flexible.
True -0 but the likelihood of the number system changing any time soon is low ;)
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
-
_Maxxx_ wrote:
Curmudgeonprofessional
Pompous ass. That should do it.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. Those who seek perfection will only find imperfection nils illegitimus carborundum me, me, me me, in pictures
Well fuck you
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
-
1. Why not? 2. To learn the language. Beats the heck out of "Hello World". 3. For the same reason people draw doodles. 4. Why not? :)
Marc A. Brown wrote:
1. Why not?
Well he said he did it at work, so I assumed it was something required for the business rather than being done as a leisure activity. So re-inventing the wheel is not generally a good thing for a business to do with so trivial a thing.
Marc A. Brown wrote:
To learn the language. Beats the heck out of "Hello World".
Again - he was doing it at work & I assumed that he wasn't doing it for fun but for a business requirement.
Marc A. Brown wrote:
4. Why not? :)
Because
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
-
True -0 but the likelihood of the number system changing any time soon is low ;)
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
Think globally.
-
Marc A. Brown wrote:
1. Why not?
Well he said he did it at work, so I assumed it was something required for the business rather than being done as a leisure activity. So re-inventing the wheel is not generally a good thing for a business to do with so trivial a thing.
Marc A. Brown wrote:
To learn the language. Beats the heck out of "Hello World".
Again - he was doing it at work & I assumed that he wasn't doing it for fun but for a business requirement.
Marc A. Brown wrote:
4. Why not? :)
Because
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
_Maxxx_ wrote:
he said he did it at work, so I assumed it was something required for the business
I did most of my Turing Machine experiments at a previous job. :~
-
Well fuck you
MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
No sir, fuck you. I would suggest purchasing a sense of humor: you plainly lack one and are so far up your own ass I can't believe you can see well enough to have written these posts. Have a nice day, twat.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. Those who seek perfection will only find imperfection nils illegitimus carborundum me, me, me me, in pictures