Red de conocimiento informático - Conocimiento informático - Código VB para convertir una cantidad de RMB en minúsculas a una cantidad en mayúsculas

Código VB para convertir una cantidad de RMB en minúsculas a una cantidad en mayúsculas

Este código se convierte al inglés. Primero le permitirá comprender el principio de funcionamiento y luego le brindará el principio de funcionamiento principal en chino de la siguiente manera: divida 1200.12 en 000.000.001.200.12, use el formato (1200, "000.000.000.000.000.00") para lograrlo y luego podrá. Se divide en 4 matrices, que son 00 mil millones+ 00 millones 001+ mil millones+ 20 dólares+ 12+ centavos, y luego llama a GetNum3_en para devolver la descripción en inglés correspondiente. GetNum3_en: Acepta una variable larga de tres dígitos y devuelve una descripción en inglés, como 120, devolviendo ciento veinte. Llama a GetNum2_en y GetNum1_en GetNum2_en: Devuelve la descripción en inglés de diez dígitos, como 2, devuelve veinte GetNum1_en: Devuelve la descripción en inglés de menos de veinte, si se pasa 12, devuelve doce Option Explicit

Private Sub Command1_Click()

'0000,000,000,000,000

MsgBox GetNumber_en(Val(Me.Text1.

End Sub

Función privada GetNumber_en(ByVal iNum As Double) como cadena

Dim sNum como cadena, sNum_En como cadena, sAll como cadena, sDecimal como cadena

Dim sStrArray() Como Cadena, i Como Largo

sNum = Format(iNum, "000,000,000.000.00")

If InStr(sNum, ". ") > 0 Entonces

sDecimal = Derecha(sNum, Len(sNum) - InStr(sNum, "."))

sNum = Izquierda(sNum, InStr(sNum, " ."") - 1)

Finalizar si

sStrArray = Split(sNum, ","")

sNum_En = GetNum3_en(sStrArray(0))

Si Len(sNum_En) > 0 Entonces sNum_En = sNum_ En & " mil millones" & IIf(Val(sStrArray(0)) > 1, "s", "")

sAll = sNum_En

sNum_En = GetNum3_en(sStrArray(1))

Si Len( sNum_En) > 0 Entonces sNum_En = sNum_En &" millones" & IIf(Val(sStrArray(1) ) > 1, "s", "")

Si Len(sNum_En) > 0 Entonces sAll = sAll & IIf(Len(sAll) > 0, " y ", "") & sNum_En

sNum_En = GetNum3_en(sStrArray(2))

Si Len(sNum_En) > 0 Entonces sNum_En = sNum_En &"thound" & IIf(Val(sStrArray(2)) > 1 , "s", "")

Si Len(sNum_En) > 0 Entonces sAll = sAll &IIf(Len(sAll) > 0, " y ", "") & sNum_En

sNum_En = GetNum3_en(sStrArray(3))

Si Len(sNum_En) > 0 Entonces sAll = sAll & IIf(Len(sAll) > 0, " y ", " ") & sNum_En

Si Len(sAll) > 0 Entonces sAll = sAll &" Dollar" & IIf(Val(Join(sStrArray, "") > 1, "s", "")

'decimal

Si Len(sDecimal) > 0 Entonces

sNum_En = GetNum3_en(sDecimal)

Si Len(sNum_En) > 0 Entonces sAll = sAll & IIf(Len(sAll) > 0, " y ", "") & sNum_En & " Cent" & IIf(Val(sDecimal) > 1, "s", "")

Finalizar si

GetNumber_en = sAll

Función final

Función privada GetNum3_en( ByVal iNum As Long) Como cadena

'3 dígitos

Dim sStr As String

sStr = Format(Left(iNum, 3), "000") 'Asegúrate de que solo haya 3 dígitos

p>

Si Val(Mid(sStr, 1, 1)) > 0 entonces 'cientos'

GetNum3_en = GetNum1_En(Mid(sStr, 1, 1) ) & "cientos" & IIf(Val(Mid(sStr, 1, 1)) > 1, "s" , "")

End If

Si Val(Mid( sStr, 2, 2 )) >= 20 entonces

'Comprueba si excede 20

Si Val(Mid(sStr, 2, 1)) > 0 Entonces 'diez

GetNum3_en = GetNum3_en & IIf(Len(GetNum3_en) > 0, " And ", "") & GetNum2_En(Mid(sStr, 2, 1))

Fin If

Si Val(Mid(sStr , 3, 1)) > 0 Entonces 'menos de 10

GetNum3_en = GetNum3_en & IIf(Len(GetNum3_en) > 0, " y "," "" ) & GetNum1_En(Mid (sStr, 3, 1))

Fin

Else

If Val(Mid(sStr, 2, 2)) > 0 Entonces 'menos de 10

GetNum3_en = GetNum3_en & IIf(Len(GetNum3_en) > 0, " y ", "") & GetNum1_En(Mid(sStr, 2, 2))

Finalizar si

Finalizar si

Finalizar función

Función privada GetNum2_En(ByVal iNum As Long) como cadena

Seleccionar Caso iNum

Caso 1

GetNum2_En = "Diez"

CasoCase 2

GetNum2_En = "Veinte"

Caso 3

GetNum2_En = "Treinta"

Caso 4

GetNum2_En = "Cuarenta"

Caso 5

GetNum2_En = "Cincuenta "

Caso 6

GetN

um2_En = "60"