Avatar billede spykiller Nybegynder
25. august 2003 - 15:27 Der er 8 kommentarer og
1 løsning

Print af checks

Jeg er ved at lave sådan et program som printer på checks.

Nu mangler jeg bare en function som kan lave tal om til bokstaver.

Nogle forslag?
Avatar billede sjh Nybegynder
25. august 2003 - 15:59 #1
og hvad er det så for nogle tal der skal laves om til bogstaver?
Avatar billede blueeye97 Nybegynder
25. august 2003 - 15:59 #2
Jeg har noget liggende. Jeg finder det lige og vender tilbage
Avatar billede blueeye97 Nybegynder
25. august 2003 - 16:08 #3
Du kan bruge nedenstående.

Public Function NumToString(ByVal nNumber As Currency) As String

Dim bNegative As Boolean
Dim bHundred As Boolean

If nNumber < 0 Then
    bNegative = True
End If

nNumber = Abs(Int(nNumber))

If nNumber < 1000 Then
    If nNumber \ 100 > 0 Then
        NumToString = NumToString & _
            NumToString(nNumber \ 100) & " hundred"
        bHundred = True
    End If
    nNumber = nNumber - ((nNumber \ 100) * 100)
    Dim bNoFirstDigit As Boolean
    bNoFirstDigit = False
    Select Case nNumber \ 10
        Case 0
            Select Case nNumber Mod 10
                Case 0
                    If Not bHundred Then
                        NumToString = NumToString & " zero"
                    End If
                Case 1: NumToString = NumToString & " one"
                Case 2: NumToString = NumToString & " two"
                Case 3: NumToString = NumToString & " three"
                Case 4: NumToString = NumToString & " four"
                Case 5: NumToString = NumToString & " five"
                Case 6: NumToString = NumToString & " six"
                Case 7: NumToString = NumToString & " seven"
                Case 8: NumToString = NumToString & " eight"
                Case 9: NumToString = NumToString & " nine"
            End Select
            bNoFirstDigit = True
        Case 1
            Select Case nNumber Mod 10
                Case 0: NumToString = NumToString & " ten"
                Case 1: NumToString = NumToString & " eleven"
                Case 2: NumToString = NumToString & " twelve"
                Case 3: NumToString = NumToString & " thirteen"
                Case 4: NumToString = NumToString & " fourteen"
                Case 5: NumToString = NumToString & " fifteen"
                Case 6: NumToString = NumToString & " sixteen"
                Case 7: NumToString = NumToString & " seventeen"
                Case 8: NumToString = NumToString & " eighteen"
                Case 9: NumToString = NumToString & " nineteen"
            End Select
            bNoFirstDigit = True
        Case 2: NumToString = NumToString & " twenty"
        Case 3: NumToString = NumToString & " thirty"
        Case 4: NumToString = NumToString & " forty"
        Case 5: NumToString = NumToString & " fifty"
        Case 6: NumToString = NumToString & " sixty"
        Case 7: NumToString = NumToString & " seventy"
        Case 8: NumToString = NumToString & " eighty"
        Case 9: NumToString = NumToString & " ninety"
    End Select
    If Not bNoFirstDigit Then
        If nNumber Mod 10 <> 0 Then
            NumToString = NumToString & "-" & _
                          Mid(NumToString(nNumber Mod 10), 2)
        End If
    End If
Else
    Dim nTemp As Currency
    nTemp = 10 ^ 12 'trillion
    Do While nTemp >= 1
        If nNumber >= nTemp Then
            NumToString = NumToString & _
                          NumToString(Int(nNumber / nTemp))
            Select Case Int(Log(nTemp) / Log(10) + 0.5)
                Case 12: NumToString = NumToString & " trillion"
                Case 9: NumToString = NumToString & " billion"
                Case 6: NumToString = NumToString & " million"
                Case 3: NumToString = NumToString & " thousand"
            End Select
         
            nNumber = nNumber - (Int(nNumber / nTemp) * nTemp)
        End If
        nTemp = nTemp / 1000
    Loop
End If

If bNegative Then
    NumToString = " negative" & NumToString
End If
   
End Function

Public Function DollarToString(ByVal nAmount As Currency) As _
String

    Dim nDollar As Currency
    Dim nCent As Currency
   
    nDollar = Int(nAmount)
    nCent = (Abs(nAmount) * 100) Mod 100
   
    DollarToString = NumToString(nDollar) & " dollar"
   
    If Abs(nDollar) <> 1 Then
        DollarToString = DollarToString & "s"
    End If
   
    DollarToString = DollarToString & " and" & _
                    NumToString(nCent) & " cent"
                   
    If Abs(nCent) <> 1 Then
        DollarToString = DollarToString & "s"
    End If
   
End Function
Avatar billede blueeye97 Nybegynder
25. august 2003 - 16:16 #4
Avatar billede martin_moth Mester
26. august 2003 - 17:41 #5
"Nu mangler jeg bare en function som kan lave tal om til bokstaver"

Jeg kan lave en funktion laver et tilfældigt bogstav om til et tilfældigt tal...

Eller f.eks. A om til Atten, B om til en Billion, F om til Firs osv...

Interesseret ;o)
Avatar billede blueeye97 Nybegynder
26. august 2003 - 23:39 #6
Ehh... Jeg er ikke helt med. Det eksempel jeg fandt løser da problemet med checks. Altså hvis man lige laver de engelske betegnelser om til kroner og øre m.m. Det er jo det der er brug for på en check når man skal have "skriver kroner" med. F.eks. ettusindetohundredefemti 00/00
Avatar billede martin_moth Mester
27. august 2003 - 09:19 #7
blueeye97: Jeg mener bare, at spørgsmålet er lidt sjovt - "der skal bruges en funktion der laver tal om til tekst".
Der står ikke noget om efter hvilke pincipper, hvilke bogstaver skal laves om til hvilke tal... Mit svar ovenfor var et forsøg på at lægge et humoristisk svar... Ignorer det blot :o)
Avatar billede spykiller Nybegynder
28. august 2003 - 13:40 #8
Det ser ret godt ud Blueeye97

Jeg prøver det lige af i aften
Avatar billede spykiller Nybegynder
29. august 2003 - 15:02 #9
Det virker,, Tusinde tak

God weekend til alle :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester