¡Date prisa! ! ! ! ! ! ! C# convierte el número de coma flotante en 123,45 RMB, que se convierte en 1223,45 RMB.
Usar sistema;
Espacio de nombres público
{
/// lt; Resumengt
/ // Categoría de operación de RMB: convierte el tamaño y la cantidad de RMB.
/// 1. CmycurD (moneda decimal) se convierte en formato de texto del monto en RMB.
/// 2. CmycurD(string strMoney) convierte la cantidad en RMB en forma de texto.
/// lt;/summary gt;
Clase estática pública RmbUtil
{
/// lt;Resumen gt
///Convierta la cantidad a RMB en forma de texto.
///lt;/summary gt;
///lt;param name = "Dinero" gtQuantity
///lt;returns gt Volver forma mayúscula
Cadena estática pública CmycurD (moneda decimal)
{
Cadena constante numericChinese = "cero uno dos tres cuatro cinco seis siete ocho nueve" ; /0-9 caracteres chinos correspondientes a números
String unitChinese = "100 mil millones de RMB, 100 millones de RMB, 10 centavos de RMB" // Caracteres chinos correspondientes a la unidad numérica
Dinero = matemáticas. Circle(Math.Abs(money), 2); //Obtiene el valor absoluto del dinero, redondeado a 2 decimales.
cadena strNumeric =((long)(Dinero * 100)). ToString(); //Forma de cadena del número
string strCmycurD =//Cantidad en letras mayúsculas RMB
int maxUnit = strNumeric. longitud; //Unidad máxima
if(maxUnit gt;15){return "overflow";}
unitChinese = unitChinese. Substring (15-maxUnit); //Obtiene el valor de los dígitos correspondientes de unitChinese. Por ejemplo: 200,55, maxUnit es 5, por lo que unitChinese = 100 yuanes y 10 puntos.
String unitConvert =// Conversión de caracteres chinos de unidades numéricas
int nzero = 0 // ¿Cuántos valores cero consecutivos se utilizan para calcular?
//Bucle para generar el valor a convertir para cada bit.
for(int I = 0; IltmaxUniti)
{
String numericConvert//Conversión de números a caracteres chinos
string strConvertValue = strNumeric. Subcadena (I, 1); //Obtiene el valor del bit a convertir.
int convertValue = Converttoint 32(strConvertValue); //Convertir a número
If (i!=(maxUnit-3)amp; ampi!=(maxUnit-7) amp ; amp me! = (maxUnit-11) amp; amp me! = (maxUnit - 15))
{
// Cuando el número de dígitos no es yuanes, diez mil, o mil millones, billones de horas.
if (strConvertValue == "0 ")
{
numericConvert =
unitConvert =
nzero = nzero 1;
}
Otro
{
if (strConvertValue!= "0" amp NZero.= 0 )
{
conversión numérica = " cero " subcadena china numérica (valor de conversión * 1, 1); Subcadena (I, 1);
nzero = 0
}
Otros
{
numericConvert; = chino numérico. Subcadena(convertValue * 1, 1);
unitConvert = unitChinese. Subcadena (I, 1);
cero = 0
}
}
}
Otros;
{
// Este bit es el bit clave, como billones, miles de millones, millones, yuanes, etc.
if (strConvertValue! = " 0 " amp nzero. = 0)
{
conversión numérica = " cero " subcadena numérica china (convertir valor *. 1, 1);
unitConvert = unidadChinese. Subcadena (I, 1);
nzero = 0
}
Otros
{
si; (strConvertValue! = " 0 " amp ampnzero == 0)
{
numericConvert = numericChinese. Subcadena(convertValue * 1, 1);
unitConvert = unitChinese. Subcadena (I, 1);
nzero = 0
}
Otros
{
si; (strConvertValue == " 0 " amp; ampnzero gt= 3)
{
numericConvert =
unitConvert =
nzero = nzero 1;
}
Otro
{
if(maxUnit gt; = 11)
{
numericConvert =
nzero = nzero 1;
}
Otro
{
numericConvert =
unitConvert = unidadChino.
Subcadena (I, 1);
nzero = nzero 1;
}
}
}
}
}
if(I = =(maxUnit-11)| | I = =(maxUnit-3))
{
// Si este bit es mil millones de bits o un yuan, debe escribirse.
unitConvert = unidadChinese. subcadena (I, 1);
}
strCmycurD = strCmycurD conversión numérica de unidades;
if(I = = maxUnit-1 amp; ampstrConvertValue = = "0 ")
{
//Cuando el último dígito (minuto) sea 0, agregue "todo"
strcmyculd = strcmyculd 'todo';
}
}
if (dinero == 0)
{
StrCmycurD = "dólar cero" ;
}
Devolver strCmycurD
}
/// lt; Resumengt
///Convertir el importe en RMB en forma de texto.
///lt;/summary gt;
/// lt;param name = "strMoney" gtforma numérica de cadena de cantidad
/// lt; devuelve gt lt/returns gt;
Cadena estática pública CmycurD(String strMoney)
{
Probar
{
Moneda decimal = Convertir. ToDecimal(strMoney);
Devolver CmycurD(dinero);
}
Capturar
{
Devolver "¡No en forma numérica!";
}
}
}
}