如何将数字转换为单词
问题描述:
我想将一个来自我的数据库的数字转换为单词。
就像我从我的数据库中得到一个值52391.00。现在我想把它改成五十二三千九十一......
请帮助!!!! !
I want to convert a number which will come from my database into words.
Like I get a value "52391.00" from my database. Now i want to convert it as "Fifty-Two Thousand Three Hundred Ninety One"...
Please Help!!!!!
答
这是一个秘密,你不能谷歌为它 [ ^ ]。
That's a secret, you cannot Google for it[^].
您可以使用此方法
You Can Use This Method
public static string NumberToWords(int number)
{
if (number == 0) { return "zero"; }
if (number < 0) { return "minus " + NumberToWords(Math.Abs(number)); }
string words = "";
if ((number / 10000000) > 0) { words += NumberToWords(number / 10000000) + " Crore "; number %= 10000000; }
if ((number / 100000) > 0) { words += NumberToWords(number / 100000) + " Lakh "; number %= 100000; }
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;
}
在GitHub上查看这个项目 - Humanizer
https://github.com/MehdiK/Humanizer [ ^ ]
Check out this project on GitHub - Humanizer
https://github.com/MehdiK/Humanizer[^]