Convert any number to Chinese currency type

Source: Internet
Author: User

[C-sharp: showcolumns] · 40 · ····· · 90 ··· · 140 · 150
/// </Summary>
/// <Param name = "str"> numeric string </param>
/// <Returns> string converted to an uppercase Chinese character or error message </returns>
Public string ConvertSum (string str)
{
If (! IsPositveDecimal (str ))
Return "the input is not a positive number! ";
If (Double. Parse (str)> 999999999999.99)
Return "the number is too large to be converted. Please enter the amount below 1 trillion yuan ";
Char [] ch = new char [1];
Ch [0] = '.'; // decimal point
String [] splitstr = null; // defines the string array separated by the decimal point
Splitstr = str. Split (ch [0]); // Split string by decimal point
If (splitstr. Length = 1) // only the integer part is available.
Return ConvertData (str) + "round ";
Else // has a decimal part
{
String rstr;
Rstr = ConvertData (splitstr [0]) + "circle"; // convert the integer
Rstr + = ConvertXiaoShu (splitstr [1]); // converts the decimal part
Return rstr;
}
 
}
/// <Summary>
/// Determine whether the string is a positive number.
/// </Summary>
/// <Param name = "str"> judge string </param>
/// <Returns> if it is a number, true is returned; otherwise, false is returned. </returns>
Public bool IsPositveDecimal (string str)
{
Decimal d;
Try
{
D = Decimal. Parse (str );
 
}
Catch (Exception)
{
Return false;
}
If (d> 0)
Return true;
Else
Return false;
}
/// <Summary>
/// Convert a number (integer)
/// </Summary>
/// <Param name = "str"> integer numeric string to be converted </param>
/// <Returns> converts a string to an uppercase string of Chinese characters </returns>
Public string ConvertData (string str)
{
String tmpstr = "";
String rstr = "";
Int strlen = str. Length;
If (strlen <= 4) // The number length is less than four digits
{
Rstr = ConvertDigit (str );
 
}
Else
{
 
If (strlen <= 8) // The number must be greater than four digits and smaller than eight digits.
{
Tmpstr = str. Substring (strlen-4, 4); // extract the last four digits
Rstr = ConvertDigit (tmpstr); // converts the last four digits.
Tmpstr = str. Substring (0, strlen-4); // extract other digits
// Connect the converted numbers with values
Rstr = String. Concat (ConvertDigit (tmpstr) + "reverse", rstr );
Rstr = rstr. Replace ("zero percent", "percent ");
Rstr = rstr. Replace ("zero", "zero ");
 
}
Else
If (strlen <= 12) // The number is greater than eight digits and smaller than twelve digits.
{
Tmpstr = str. Substring (strlen-4, 4); // extract the last four digits
Rstr = ConvertDigit (tmpstr); // converts the last four digits.
Tmpstr = str. Substring (strlen-8, 4); // truncates four digits.
Rstr = String. Concat (ConvertDigit (tmpstr) + "reverse", rstr );
Tmpstr = str. Substring (0, strlen-8 );
Rstr = String. Concat (ConvertDigit (tmpstr) + "reverse", rstr );
Rstr = rstr. Replace ("zero percent", "percent ");
Rstr = rstr. Replace ("zero percentage", "zero ");
Rstr = rstr. Replace ("zero", "zero ");
Rstr = rstr. Replace ("zero", "zero ");
}
}
Strlen = rstr. Length;
If (strlen> = 2)
{
Switch (rstr. Substring (strlen-2, 2 ))
{
Case "break zero": rstr = rstr. Substring (0, strlen-2) + "break"; break;
Case "break zero": rstr = rstr. Substring (0, strlen-2) + "break"; break;
Case "break zero": rstr = rstr. Substring (0, strlen-2) + "break"; break;
Case "break zero": rstr = rstr. Substring (0, strlen-2) + "break"; break;
 
}
}
 
Return rstr;
}
/// <Summary>
/// Convert the number (decimal part)
/// </Summary>
/// <Param name = "str"> decimal part of the numeric string to be converted </param>
/// <Returns> converts a string to an uppercase string of Chinese characters </returns>
Public string ConvertXiaoShu (string str)
{
Int strlen = str. Length;
String rstr;
If (strlen = 1)
{
Rstr = ConvertChinese (str) + "";
Return rstr;
}
Else
{
String tmpstr = str. Substring (0, 1 );
Rstr = ConvertChinese (tmpstr) + "";
Tmpstr = str. Substring (1, 1 );
Rstr + = ConvertChinese (tmpstr) + "points ";
Rstr = rstr. Replace ("0 ","");
Rstr = rstr. Replace (" ","");
Return rstr;
}
 
 
}
 
/// <Summary>
/// Convert numbers
/// </Summary>
/// <Param name = "str"> converted string (within four digits) </param>
/// <Returns> </returns>
Public string ConvertDigit (string str)
{
Int strlen = str. Length;
String rstr = "";
Switch (strlen)
{
Case 1: rstr = ConvertChinese (str); break;
Case 2: rstr = Convert2Digit (str); break;
Case 3: rstr = Convert3Digit (str); break;
Case 4: rstr = Convert4Digit (str); break;
}
Rstr = rstr. Replace ("pick up", "pick up ");
Strlen = rstr. Length;
 
Return rstr;
}
 
 
/// <Summary>
/// Convert four digits
/// </Summary>
Public string Convert4Digit (string str)
{
String str1 = str. Substring (0, 1 );
String str2 = str. Substring (1, 1 );
String str3 = str. Substring (2, 1 );
String str4 = str. Substring (3, 1 );
String rstring = "";
Rstring + = ConvertChinese (str1) + "character ";
Rstring + = ConvertChinese (str2) + "character ";
Rstring + = ConvertChinese (str3) + "pick up ";
Rstring + = ConvertChinese (str4 );
Rstring = rstring. Replace ("0", "0 ");
Rstring = rstring. Replace ("0", "0 ");
Rstring = rstring. Replace ("Zero pick", "zero ");
Rstring = rstring. Replace ("zero", "zero ");
Rstring = rstring. Replace ("zero", "zero ");
Rstring = rstring. Replace ("zero", "zero ");
Return rstring;
}
/// <Summary>
/// Convert three digits
/// </Summary>
Public string Convert3Digit (string str)
{
String str1 = str. Substring (0, 1 );
String str2 = str. Substring (1, 1 );
String str3 = str. Substring (2, 1 );
String rstring = "";
Rstring + = ConvertChinese (str1) + "character ";
Rstring + = ConvertChinese (str2) + "pick up ";
Rstring + = ConvertChinese (str3 );
Rstring = rstring. Replace ("0", "0 ");
Rstring = rstring. Replace ("Zero pick", "zero ");
Rstring = rstring. Replace ("zero", "zero ");
Rstring = rstring. Replace ("zero", "zero ");
Return rstring;
}
/// <Summary>
/// Convert two digits
/// </Summary>
Public string Convert2Digit (string str)
{
String str1 = str. Substring (0, 1 );
String str2 = str. Substring (1, 1 );
String rstring = "";
Rstring + = ConvertChinese (str1) + "pick up ";
Rstring + = ConvertChinese (str2 );
Rstring = rstring. Replace ("Zero pick", "zero ");
Rstring = rstring. Replace ("zero", "zero ");
Return rstring;
}
/// <Summary>
/// Convert a digit into a Chinese uppercase Digit
/// </Summary>
Public string ConvertChinese (string str)
{
// "The number of points in the circle between the two accounts is different"
String cstr = "";
Switch (str)
{
Case "0": cstr = "0"; break;
Case "1": cstr = "1"; break;
Case "2": cstr = "II"; break;
Case "3": cstr = ""; break;
Case "4": cstr = "Si"; break;
Case "5": cstr = "Wu"; break;
Case "6": cstr = ""; break;
Case "7": cstr = "break"; break;
Case "8": cstr = "break"; break;
Case "9": cstr = "break"; break;
}
Return (cstr );
}


From caoruyi15's column

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.