Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

converting Numbers to words

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    converting Numbers to words

    Hello all ,
    i have this application where you write the amount in numbers
    the client needs my application to convert the inserted numbers into words .
    example

    amount = 1,229 $

    the application should convert that into

    One Thousand Two Hundred and twenty nine $

    what even makes it more hard that my client needs that to be written not only in English , as well it should appear in different language .

    any idea how to achieve that in alpha v11 or v12 ?


    Please share your experience .

    Regards
    To live anywhere in the world today and be against equality because of race or color is like living in Alaska and being against snow.�

    - William Faulkner

    #2
    Re: converting Numbers to words

    I have several mysql procedures that are invoked through a callback to achieve this.
    The number of languages is limited to two, dutch and english.
    Let me know if you want to see them.

    Comment


      #3
      Re: converting Numbers to words

      I have several mysql procedures that are invoked through a callback to achieve this.
      The number of languages is limited to two, dutch and english.
      Let me know if you want to see them.

      Comment


        #4
        Re: converting Numbers to words

        You can do it client-side using javascript.
        See http://jsfiddle.net/nzRje/
        This sample script will display the words when you hover over the 3 numbers in the right bottom section.
        Andy.

        Comment


          #5
          Re: converting Numbers to words

          I don't do so well with javascript or languages other than English, but I'll throw in my 2 cents anyway. I use 2 xbasic functions to make this happen,
          but I don't think it's slow, even across the net.
          ? num2words("1,229$")
          = "one Thousand two Hundred twenty-nine Dollars"

          Code:
          FUNCTION spellitout AS C (varnum AS c )
          'debug(1)
          dim validlist as c = "0123456789."
          binghead = ""
          for n = 1 to len(alltrim(varnum))
          	if .not. inlist2(substr(varnum,n,1),"0,1,2,3,4,5,6,7,8,9,.") then
          	    binghead="Invalid Character detected!"
          	end if
          next n
          
          if binghead <> "" then
              spellitout = binghead
              end 
          end if
          	numlist = <<%num%
          zero
          one
          two
          three
          four
          five
          six
          seven
          eight
          nine
          ten
          eleven
          twelve
          thirteen
          fourteen
          fifteen
          sixteen
          seventeen
          eighteen
          nineteen
          twenty
          twenty-one
          twenty-two
          twenty-three
          twenty-four
          twenty-five
          twenty-six
          twenty-seven
          twenty-eight
          twenty-nine
          thirty
          thirty-one
          thirty-two
          thirty-three
          thirty-four
          thirty-five
          thirty-six
          thirty-seven
          thirty-eight
          thirty-nine
          forty
          forty-one
          forty-two
          forty-three
          forty-four
          forty-five
          forty-six
          forty-seven
          forty-eight
          forty-nine
          fifty
          fifty-one
          fifty-two
          fifty-three
          fifty-four
          fifty-five
          fifty-six
          fifty-seven
          fifty-eight
          fifty-nine
          sixty
          sixty-one
          sixty-two
          sixty-three
          sixty-four
          sixty-five
          sixty-six
          sixty-seven
          sixty-eight
          sixty-nine
          seventy
          seventy-one
          seventy-two
          seventy-three
          seventy-four
          seventy-five
          seventy-six
          seventy-seven
          seventy-eight
          seventy-nine
          eighty
          eighty-one
          eighty-two
          eighty-three
          eighty-four
          eighty-five
          eighty-six
          eighty-seven
          eighty-eight
          eighty-nine
          ninety
          ninety-one
          ninety-two
          ninety-three
          ninety-four
          ninety-five
          ninety-six
          ninety-seven
          ninety-eight
          ninety-nine
          %num%
          dim numeric[101] as c
          
          
          
          numeric.initialize(numlist)
          spellitout=""
          if len(varnum)=3 then
              spellitout = numeric[val(left(varnum,1))+1]+" Hundred "
          end if
          
          if len(varnum) > 1 then
              spellitout	=spellitout + numeric[val(right(varnum,2))+1]
           else
              spellitout	=spellitout + numeric[val(right(varnum,1))+1] 
          end if
          
          if len(varnum)= 3 .and. left(varnum,1)= "0" then
              spellitout = right(spellitout,len(spellitout)-len("zero hundred "))
          end if
          
          END FUNCTION
          Code:
          FUNCTION num2words AS C (pubdebt AS c )
          dim spellit[9] as c
          spellit[1]="Dollars"
          spellit[2]="Thousand"
          spellit[3]="Million"
          spellit[4]="Billion"
          spellit[5]="Trillion"
          spellit[6]="Quadrillion"
          spellit[7]="Quintillion"
          spellit[8]="Sextillion"
          spellit[9]="Septillion"
          
          pubdebt=strtran(pubdebt,"$","")
          pubdebt=strtran(pubdebt,",","")
          
          if at(".",pubdebt,1)= 0 then
              pubdebt=pubdebt+"."
          end if
          
          if round_up((at(".",pubdebt,1)-1)/3,0)>0 then
              for n = round_up((at(".",pubdebt,1)-1)/3,0) to 1 step -1
              	if n*3 = (at(".",pubdebt,1)-1) then
              	    num2words = spellitout(left(pubdebt,3)) +" "+ spellit[n]+crlf()
             else if   n*3 > (at(".",pubdebt,1)-1) then
             			num2words=spellitout(left(pubdebt,3-((n*3)-(at(".",pubdebt,1)-1))))+" "+spellit[n] +crlf() 
             else if	 n*3 < 	(at(".",pubdebt,1)-1) then
             
             			num2words = num2words+" "+spellitout(left(right(left(pubdebt,at(".",pubdebt)-1),n*3),3))+" "+spellit[n]+crlf()
              	end if
            '  	num2words()
              next
          end if
          
          if len(pubdebt)-at(".",pubdebt,1)>0 then
              if len(pubdebt)-at(".",pubdebt,1) = 1 then
                  num2words = num2words+" and "+ spellitout(alltrim(str(val(right(pubdebt,1))*10)))+" cents"
              else
              	num2words = num2words+" and "+ spellitout(substr(pubdebt,at(".",pubdebt,1)+1,2))+" cents"
              end if
          end if
          num2words= strtran(num2words,crlf(),"")
          
          
          END FUNCTION
          Gregg
          https://paiza.io is a great site to test and share sql code

          Comment


            #6
            Re: converting Numbers to words

            Originally posted by madtowng View Post
            I don't do so well with javascript or languages other than English, but I'll throw in my 2 cents anyway. I use 2 xbasic functions to make this happen,
            but I don't think it's slow, even across the net.
            ? num2words("1,229$")
            = "one Thousand two Hundred twenty-nine Dollars"

            Code:
            FUNCTION spellitout AS C (varnum AS c )
            'debug(1)
            dim validlist as c = "0123456789."
            binghead = ""
            for n = 1 to len(alltrim(varnum))
            	if .not. inlist2(substr(varnum,n,1),"0,1,2,3,4,5,6,7,8,9,.") then
            	    binghead="Invalid Character detected!"
            	end if
            next n
            
            if binghead <> "" then
                spellitout = binghead
                end 
            end if
            	numlist = <<%num%
            zero
            one
            two
            three
            four
            five
            six
            seven
            eight
            nine
            ten
            eleven
            twelve
            thirteen
            fourteen
            fifteen
            sixteen
            seventeen
            eighteen
            nineteen
            twenty
            twenty-one
            twenty-two
            twenty-three
            twenty-four
            twenty-five
            twenty-six
            twenty-seven
            twenty-eight
            twenty-nine
            thirty
            thirty-one
            thirty-two
            thirty-three
            thirty-four
            thirty-five
            thirty-six
            thirty-seven
            thirty-eight
            thirty-nine
            forty
            forty-one
            forty-two
            forty-three
            forty-four
            forty-five
            forty-six
            forty-seven
            forty-eight
            forty-nine
            fifty
            fifty-one
            fifty-two
            fifty-three
            fifty-four
            fifty-five
            fifty-six
            fifty-seven
            fifty-eight
            fifty-nine
            sixty
            sixty-one
            sixty-two
            sixty-three
            sixty-four
            sixty-five
            sixty-six
            sixty-seven
            sixty-eight
            sixty-nine
            seventy
            seventy-one
            seventy-two
            seventy-three
            seventy-four
            seventy-five
            seventy-six
            seventy-seven
            seventy-eight
            seventy-nine
            eighty
            eighty-one
            eighty-two
            eighty-three
            eighty-four
            eighty-five
            eighty-six
            eighty-seven
            eighty-eight
            eighty-nine
            ninety
            ninety-one
            ninety-two
            ninety-three
            ninety-four
            ninety-five
            ninety-six
            ninety-seven
            ninety-eight
            ninety-nine
            %num%
            dim numeric[101] as c
            
            
            
            numeric.initialize(numlist)
            spellitout=""
            if len(varnum)=3 then
                spellitout = numeric[val(left(varnum,1))+1]+" Hundred "
            end if
            
            if len(varnum) > 1 then
                spellitout	=spellitout + numeric[val(right(varnum,2))+1]
             else
                spellitout	=spellitout + numeric[val(right(varnum,1))+1] 
            end if
            
            if len(varnum)= 3 .and. left(varnum,1)= "0" then
                spellitout = right(spellitout,len(spellitout)-len("zero hundred "))
            end if
            
            END FUNCTION
            Code:
            FUNCTION num2words AS C (pubdebt AS c )
            dim spellit[9] as c
            spellit[1]="Dollars"
            spellit[2]="Thousand"
            spellit[3]="Million"
            spellit[4]="Billion"
            spellit[5]="Trillion"
            spellit[6]="Quadrillion"
            spellit[7]="Quintillion"
            spellit[8]="Sextillion"
            spellit[9]="Septillion"
            
            pubdebt=strtran(pubdebt,"$","")
            pubdebt=strtran(pubdebt,",","")
            
            if at(".",pubdebt,1)= 0 then
                pubdebt=pubdebt+"."
            end if
            
            if round_up((at(".",pubdebt,1)-1)/3,0)>0 then
                for n = round_up((at(".",pubdebt,1)-1)/3,0) to 1 step -1
                	if n*3 = (at(".",pubdebt,1)-1) then
                	    num2words = spellitout(left(pubdebt,3)) +" "+ spellit[n]+crlf()
               else if   n*3 > (at(".",pubdebt,1)-1) then
               			num2words=spellitout(left(pubdebt,3-((n*3)-(at(".",pubdebt,1)-1))))+" "+spellit[n] +crlf() 
               else if	 n*3 < 	(at(".",pubdebt,1)-1) then
               
               			num2words = num2words+" "+spellitout(left(right(left(pubdebt,at(".",pubdebt)-1),n*3),3))+" "+spellit[n]+crlf()
                	end if
              '  	num2words()
                next
            end if
            
            if len(pubdebt)-at(".",pubdebt,1)>0 then
                if len(pubdebt)-at(".",pubdebt,1) = 1 then
                    num2words = num2words+" and "+ spellitout(alltrim(str(val(right(pubdebt,1))*10)))+" cents"
                else
                	num2words = num2words+" and "+ spellitout(substr(pubdebt,at(".",pubdebt,1)+1,2))+" cents"
                end if
            end if
            num2words= strtran(num2words,crlf(),"")
            
            
            END FUNCTION
            just one word
            IMPRESSIVE
            thanks a billion for that
            u saved me lot of work .... cheers bro
            To live anywhere in the world today and be against equality because of race or color is like living in Alaska and being against snow.�

            - William Faulkner

            Comment


              #7
              Re: converting Numbers to words

              Originally posted by agillbb View Post
              You can do it client-side using javascript.
              See http://jsfiddle.net/nzRje/
              This sample script will display the words when you hover over the 3 numbers in the right bottom section.
              Andy.
              Agillbb , I cant find the right word to thank you enagph for this , its so helpful and your always helpful not for me but for everone in the forums we need more like you in world
              thanks a lot again from my heart
              To live anywhere in the world today and be against equality because of race or color is like living in Alaska and being against snow.�

              - William Faulkner

              Comment


                #8
                Re: converting Numbers to words

                Originally posted by madtowng View Post
                I don't do so well with javascript or languages other than English, but I'll throw in my 2 cents anyway. I use 2 xbasic functions to make this happen,
                but I don't think it's slow, even across the net.
                ? num2words("1,229$")
                = "one Thousand two Hundred twenty-nine Dollars"

                Code:
                FUNCTION spellitout AS C (varnum AS c )
                'debug(1)
                dim validlist as c = "0123456789."
                binghead = ""
                for n = 1 to len(alltrim(varnum))
                	if .not. inlist2(substr(varnum,n,1),"0,1,2,3,4,5,6,7,8,9,.") then
                	    binghead="Invalid Character detected!"
                	end if
                next n
                
                if binghead <> "" then
                    spellitout = binghead
                    end 
                end if
                	numlist = <<%num%
                zero
                one
                two
                three
                four
                five
                six
                seven
                eight
                nine
                ten
                eleven
                twelve
                thirteen
                fourteen
                fifteen
                sixteen
                seventeen
                eighteen
                nineteen
                twenty
                twenty-one
                twenty-two
                twenty-three
                twenty-four
                twenty-five
                twenty-six
                twenty-seven
                twenty-eight
                twenty-nine
                thirty
                thirty-one
                thirty-two
                thirty-three
                thirty-four
                thirty-five
                thirty-six
                thirty-seven
                thirty-eight
                thirty-nine
                forty
                forty-one
                forty-two
                forty-three
                forty-four
                forty-five
                forty-six
                forty-seven
                forty-eight
                forty-nine
                fifty
                fifty-one
                fifty-two
                fifty-three
                fifty-four
                fifty-five
                fifty-six
                fifty-seven
                fifty-eight
                fifty-nine
                sixty
                sixty-one
                sixty-two
                sixty-three
                sixty-four
                sixty-five
                sixty-six
                sixty-seven
                sixty-eight
                sixty-nine
                seventy
                seventy-one
                seventy-two
                seventy-three
                seventy-four
                seventy-five
                seventy-six
                seventy-seven
                seventy-eight
                seventy-nine
                eighty
                eighty-one
                eighty-two
                eighty-three
                eighty-four
                eighty-five
                eighty-six
                eighty-seven
                eighty-eight
                eighty-nine
                ninety
                ninety-one
                ninety-two
                ninety-three
                ninety-four
                ninety-five
                ninety-six
                ninety-seven
                ninety-eight
                ninety-nine
                %num%
                dim numeric[101] as c
                
                
                
                numeric.initialize(numlist)
                spellitout=""
                if len(varnum)=3 then
                    spellitout = numeric[val(left(varnum,1))+1]+" Hundred "
                end if
                
                if len(varnum) > 1 then
                    spellitout	=spellitout + numeric[val(right(varnum,2))+1]
                 else
                    spellitout	=spellitout + numeric[val(right(varnum,1))+1] 
                end if
                
                if len(varnum)= 3 .and. left(varnum,1)= "0" then
                    spellitout = right(spellitout,len(spellitout)-len("zero hundred "))
                end if
                
                END FUNCTION
                Code:
                FUNCTION num2words AS C (pubdebt AS c )
                dim spellit[9] as c
                spellit[1]="Dollars"
                spellit[2]="Thousand"
                spellit[3]="Million"
                spellit[4]="Billion"
                spellit[5]="Trillion"
                spellit[6]="Quadrillion"
                spellit[7]="Quintillion"
                spellit[8]="Sextillion"
                spellit[9]="Septillion"
                
                pubdebt=strtran(pubdebt,"$","")
                pubdebt=strtran(pubdebt,",","")
                
                if at(".",pubdebt,1)= 0 then
                    pubdebt=pubdebt+"."
                end if
                
                if round_up((at(".",pubdebt,1)-1)/3,0)>0 then
                    for n = round_up((at(".",pubdebt,1)-1)/3,0) to 1 step -1
                    	if n*3 = (at(".",pubdebt,1)-1) then
                    	    num2words = spellitout(left(pubdebt,3)) +" "+ spellit[n]+crlf()
                   else if   n*3 > (at(".",pubdebt,1)-1) then
                   			num2words=spellitout(left(pubdebt,3-((n*3)-(at(".",pubdebt,1)-1))))+" "+spellit[n] +crlf() 
                   else if	 n*3 < 	(at(".",pubdebt,1)-1) then
                   
                   			num2words = num2words+" "+spellitout(left(right(left(pubdebt,at(".",pubdebt)-1),n*3),3))+" "+spellit[n]+crlf()
                    	end if
                  '  	num2words()
                    next
                end if
                
                if len(pubdebt)-at(".",pubdebt,1)>0 then
                    if len(pubdebt)-at(".",pubdebt,1) = 1 then
                        num2words = num2words+" and "+ spellitout(alltrim(str(val(right(pubdebt,1))*10)))+" cents"
                    else
                    	num2words = num2words+" and "+ spellitout(substr(pubdebt,at(".",pubdebt,1)+1,2))+" cents"
                    end if
                end if
                num2words= strtran(num2words,crlf(),"")
                
                
                END FUNCTION
                Dear Gregg thanks for the wonderful code,

                I'm trying to use this function but it works fine in debug mode but as I'm returning from debug it gives me an error dialog box as script error on page:

                line: 628
                char: 24
                error: expected ","


                Can you please help me out with this.

                I've edited the code with small changes to make it run.

                For any other details please go through the thread http://www.alphasoftware.com/alphafo...166#post706166
                as I've posted the edited code & other details there.
                Please help me out with the solution.

                Thanks & Regards
                Syed Irfan Ahmed

                Comment


                  #9
                  Re: converting Numbers to words

                  Originally posted by irfan112 View Post
                  Dear Gregg thanks for the wonderful code,

                  I'm trying to use this function but it works fine in debug mode but as I'm returning from debug it gives me an error dialog box as script error on page:

                  line: 628
                  char: 24
                  error: expected ","


                  Can you please help me out with this.

                  I've edited the code with small changes to make it run.

                  For any other details please go through the thread http://www.alphasoftware.com/alphafo...166#post706166
                  as I've posted the edited code & other details there.
                  Please help me out with the solution.

                  Thanks & Regards
                  Syed Irfan Ahmed
                  ............
                  To live anywhere in the world today and be against equality because of race or color is like living in Alaska and being against snow.�

                  - William Faulkner

                  Comment


                    #10
                    Re: converting Numbers to words

                    The answer for how to get this to work is found in this thread:

                    http://www.alphasoftware.com/alphafo...-Error-Unknown

                    Comment


                      #11
                      Re: converting Numbers to words

                      Originally posted by lgrupido View Post
                      The answer for how to get this to work is found in this thread:

                      http://www.alphasoftware.com/alphafo...-Error-Unknown
                      i did manage a stupid solve for this by storing the value in temp table and getting the value again in the grid ... its %$&%$& solution but it works !!

                      Thanks again for the tip
                      To live anywhere in the world today and be against equality because of race or color is like living in Alaska and being against snow.�

                      - William Faulkner

                      Comment

                      Working...
                      X