Convert an integer to a formatted currency string for use in an html page

Convert an integer to a formatted currency string for use in an html page

TL;DR - the deluge custom scripts below can convert a plain integer into a currency-formatted string, i.e. convert -12345678 to ($12,345,678)  or  12345678 to $12,345,678
---------------------------------------------------------------------------------------------------
hey there fellow zoho community members!

i have been developing custom html pages for my apps in zoho creator and came across the challenge of formatting integers into nice and clean currency values. i struggled with this for awhile so i felt others may find this useful

scenario: my custom function takes in a html int parameter projectID, looks up the project record using projectID, then loops through children records and sums up currency values. the custom function outputs an integer. i then take that integer and display it on an html page. however, i want that integer to be displayed in USD currency format. for example:

function output
1553847  or  -2378495

desired value displayed on page
$1,553,847  or  ($2,378,495)


unfortunately,
  1. deluge doesn't have any number conversion tasks built-in so we're stuck with custom functions returning integers or floats
  2. we also cannot use javascript in zoho creator html pages for formatting numbers as zoho blocks any third-party scripts from being invoked from external sources
  3. also, deluge's support for regex seems to be very limited as well and only offers "match" so i had no "replace" regex options to use
with that said, i had to seek other solutions. i ended up building a deluge script to convert the integer into a USD formatted string value. i'm not a developer by trade so my code may not be the most elegant or efficient so i'd love to hear any suggestions from you and the rest of the community on how to improve this function. at the end of the day, it outputs the result i need for displaying formatted currency values in my html pages.

this method requires two functions: 1) a script to create a List of values to use in a for loop, 2) the script for looping through the original number and appending your desired separators.

i will not take credit for #1, instead i'll give a shout out to @cwm2010 for the script he recommended in a response to another community member's question.

here is the makeRange custom function you will need to call in order to create a range in my converter script:
  1. list utilities.makeRange(int start, int end)
  2. {
  3.    if(start > end)
  4.    {
  5.       return {};
  6.    }
  7.    else
  8.    {
  9.       lst = List:Int();
  10.       lst.add(start);
  11.       lst.addAll(thisapp.utilities.makeRange(start + 1,end));
  12.       return lst;
  13.    }
  14. }

the makeRange script will output a List with a range that you will use (line 25 below) for looping through your integer. now here is the script for converting an integer into a currency-formatted string.

  1. string utilities.convertIntegerToCurrency(int number)
  2. {
  3.    separator = ",";   // --- specify your type of separator (i'm using a comma)
  4.    divisor = 3;   // specify how many digits in between each separator
  5.    // --- convert integer to string & remove hyphen if number is negative
  6.    string = number.toString().remove("-");
  7.    // --- get length of string
  8.    stringLen = string.length();
  9.    info "string length = " + stringLen;
  10.    separators = 0;
  11.    // --- calculate how many separators will be needed to construct your currency string
  12.    // ------ if equally divisible 3, reduce number of separators by one (basically checks to see if number of digits is exactly divisible by 3 which means there will be one less separator)
  13.    if(stringLen / divisor = (stringLen / divisor).floor())
  14.    {
  15.       separators = (stringLen / divisor) - 1;
  16.    }
  17.    // ------ if there is a remainder after dividing by 3, set the # of separators (basically, this means there is 1 or 2 digits at the front of the number, in front of the very first separator)
  18.    else
  19.    {
  20.       separators = (stringLen / divisor).floor();
  21.    }
  22.    info "number of commas needed =" + separators;
  23.    // --- build your List needed for 'for each' loop
  24.    // ------ makeRange is a custom function required to build the List
  25.    range = thisapp.utilities.makeRange(1,separators);
  26.    info "range = " = range;
  27.    stringBuild = "";   // --- declare stringBuild variable used to continually construct the sting
  28.    // --- execute 'for each' loop to parse through the number and add separators
  29.    for each  i in range
  30.    {
  31.       // --- append separator to front of substring and add suffix of stringBuild value from previous loop iteration
  32.       stringBuild = separator + string.substring(stringLen - i * divisor,stringLen - (i - 1) * divisor) + stringBuild;
  33.    }
  34.    // --- get the first set of leading digits before the first separator
  35.    stringBuild = string.substring(0,stringLen - separators * divisor) + stringBuild;
  36.    // --- now let's bring it all together
  37.    // ------ check to see if number is positive or negative and format accordingly (you can change how you want to handle negative numbers, I wrap them in parentheses but you can modify this code to add a hyphen as the prefix, with no parentheses)
  38.    if(number < 0)
  39.    {
  40.       numConverted = "($" + stringBuild + ")";  // --- parentheses formatting for negative #'s
  41.    }
  42.    else
  43.    {
  44.       numConverted = "$" + stringBuild;
  45.    }
  46.    return numConverted;
  47. }

there you go, now you have a working function for converting a integer into a currency-formatted string. i hope this is helpful for you. happy to answer any questions you have about my approach to this script and am open to suggestions on how to improve!

enjoy!
ch

    Access your files securely from anywhere







                            Zoho Developer Community




                                                  • Desk Community Learning Series


                                                  • Digest


                                                  • Functions


                                                  • Meetups


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner


                                                  • Word of the Day


                                                  • Ask the Experts





                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator Resources



                                                                                      Zoho CRM Resources

                                                                                      • CRM Community Learning Series

                                                                                        CRM Community Learning Series


                                                                                      • Kaizen

                                                                                        Kaizen

                                                                                      • Functions

                                                                                        Functions

                                                                                      • Meetups

                                                                                        Meetups

                                                                                      • Kbase

                                                                                        Kbase

                                                                                      • Resources

                                                                                        Resources

                                                                                      • Digest

                                                                                        Digest

                                                                                      • CRM Marketplace

                                                                                        CRM Marketplace

                                                                                      • MVP Corner

                                                                                        MVP Corner









                                                                                          Design. Discuss. Deliver.

                                                                                          Create visually engaging stories with Zoho Show.

                                                                                          Get Started Now


                                                                                            Zoho Show Resources

                                                                                              Zoho Writer

                                                                                              Get Started. Write Away!

                                                                                              Writer is a powerful online word processor, designed for collaborative work.

                                                                                                Zoho CRM コンテンツ



                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                              • Recent Topics

                                                                                                              • Kiosk Button Actions

                                                                                                                I need to add an action to a Kiosk Button to loop me back to start the kiosk again and I am not sure what that looks like (function, etc.).
                                                                                                              • [Webinar] Automate generation of wills, trusts, POAs, and other estate planning documents with Zoho Writer

                                                                                                                Managing the lifecycle of the estate planning documents such as wills, trusts, and POAs, from client intake to final storage, can be complex and time-consuming. Join our live webinar to learn how Zoho Writer transforms this process by automating document
                                                                                                              • Dependent drop-downs... how?

                                                                                                                Good day. I have 2 different situations where I need a dependent drop-down field. First is for a subform, where I want to show related fields for a specific customer on the main form. In my case it is a parent whose children make use of our school transport
                                                                                                              • Reporting Limitation on Lead–Product Relation in Zoho CRM

                                                                                                                I noticed that Zoho CRM has a default Products related list under Leads. However, when I try to create a report for Lead–Product association, I’m facing some limitations. To fix this, I’m considering adding a multi-lookup field along with a custom related
                                                                                                              • Series Label in the Legend

                                                                                                                My legend reads 'Series 1' and 'Series 2'. From everything I read online, Zoho is supposed to change the data names if it's formatted correctly. I have the proper labels on the top of the columns and the right range selected. I assume it's something in
                                                                                                              • Dynamic Signature - Record owner

                                                                                                                Hi everyone, I’m using Zoho Writer merge templates from Zoho CRM and have two questions: Owner signature: How can I automatically insert the CRM record owner’s signature in the merged document? I’m not sure where this signature is stored or how to reference
                                                                                                              • Set Warehouse based on Vendor

                                                                                                                Greetings. I would like to set automaticaly the Warehouse based on the Vendor. Context: I am working on an adaptation of a Purchase Order to be used as a Quotation. I have defined that when a user has to raise a quote the Vendor will be "PROCUREMENT" I would like to set the Warehouse to a predefined value when "PROCUREMENT" is set as Vendor. I have tried to do with the Automation feature using the Field Update option, but Warehouse does not is listed as a field. Can you help? Thanks in advance.
                                                                                                              • Printing from Zoho Creator hosted on my own server to printers hosted on my clients local network

                                                                                                                Hello. Fairly new to Zoho Creator and looking for best options to be able to print from my application hosted on my own server to any printer hosted on my clients own local network. Any advice is welcome. Thank you.
                                                                                                              • Add System Pre-Defined Lookup Field to Subform?

                                                                                                                Hi there! New to using Zoho, so this may already exist, but I'm having trouble figuring it out. Is there a way to get the system pre-defined Account Lookup field (in our case, renamed to Company Name), as the starting point for a subform? In our company,
                                                                                                              • Numbered / bullet point List in Zho Cliq

                                                                                                                Hi, is there a way to format chat messages in Cliq like this Topic 1 Hey, I finished this project yesterday etc... Topic 2 I am still working on this etc...
                                                                                                              • Cannot Access Subform Display Order in Deluge

                                                                                                                As highlighted in this community post, we still have to deal with the significant limitation of not being able to access the user-sorted order of subform rows through Deluge. This creates a major disconnect between the UI capabilities and backend automation,
                                                                                                              • Update related module entry Zoho Flow not working with custom module ?

                                                                                                                Hi everyone. I am facing an issue here on Zoho Flow. Basically what I am doing is checking when a module entry is being filled in with an Event ID. Event is a custom module that I created. If the field is being filled in I fetch the contact with its ID
                                                                                                              • How many groups in Zoho Mail can I make?

                                                                                                                I'm currently on the free plan, which has a limit of 10 users. Does that limit includes groups too? If not, what is the limit for groups? Thanks!
                                                                                                              • Feature Suggestion for Zoho Social: Auto-reply to Comments or Keywords

                                                                                                                Hi Zoho team, I'd like to suggest a very specific feature that would be extremely helpful for customer engagement: the ability to automatically send a reply to comments on posts — either all comments or those containing specific keywords. For example,
                                                                                                              • My domain did not activate

                                                                                                                Hi, my domain (apsaindustrial.com.ar) did not activate, and the phone verification message never arrived. Please would you solve this problem? Thanks.
                                                                                                              • Already have Zoho account. Not letting me log in

                                                                                                                I already have a Zoho account that is associated with my Google email and my phone number. Even though I'm already logged in to Zoho, when I click on the mail icon to access my email, it takes me to the pricing page. When I click on the free option, it
                                                                                                              • ZOHO Mail App Not working

                                                                                                                There seems to be an issue with Zoho Mail App today. It is not connecting to server, internet is working fine, tried uninstalling app and reinstalling, loading circle keeps spinning round. Is there an update on the way?
                                                                                                              • facing error 550 5.4.6 while sending emails

                                                                                                                Please help me fix this issue
                                                                                                              • Allow Itemization for Recurring Expenses

                                                                                                                For whatever reason, one cannot itemize a Recurring Expense. This capability should be added. The use cases to support this are largely the same as what they were to allow for itemization in Expenses. Anything that would need to be itemized for a regular
                                                                                                              • Zoho reply to not working. just reply to my self

                                                                                                                Hello. i using on my wordpress website a contact form from Wsform. i can set the reply to email there. normally it works. but since i am using your wordpress plugin zoho mail it doesn`t work. its not using the reply to (email from customer). I just can
                                                                                                              • Can't receive any email from other platform

                                                                                                                Hello,everyone, i'm just join zoho and create two email accounts for my own business. I was using it to get a verified email from stripe, but can't receive it. and I use my private gmail account to send test email twice, first time show below reply, but
                                                                                                              • Your Incoming has been blocked and the emails will not be fetched in your Zoho account and POP Accounts

                                                                                                                Can some on help me regarding our account . thank you so much
                                                                                                              • Zoho Creator integration with Sage 50

                                                                                                                Hi, Wondering if anyone has had any experience connecting Zoho to Sage 50 and could share any information on this matter. Thank you.
                                                                                                              • Conditional Email Forwarding

                                                                                                                How can I set conditional email forwarding of the users? For example: Mail should be forwarded to a address only if it comes from a particular sender. So, I want such email forwarding, which forwards mails based on particular conditions, like the incoming
                                                                                                              • Incoming emails not appearing in Inbox

                                                                                                                Hello, I have an issue with incoming emails sent from my website (domain: h2ostop.si). Emails are visible in the Sent folder, which means they are successfully sent through Zoho SMTP, but they never appear in my Inbox. Nothing arrives in Inbox, Spam,
                                                                                                              • Automatic Matching from Bank Statements / Feeds

                                                                                                                Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
                                                                                                              • Email Opt Out Question

                                                                                                                Has the problem where if a customer is emailed opt out prevents you sending standard emails? For me this feature is simply to stop any email marketing and should not block people from receiving emails via Zoho mobile, which makes no sense.
                                                                                                              • Can No Longer Access Zoho Email Accounts from iPhone or iPad Apple Mail Apps ,.

                                                                                                                Keeps asking for password, Says ID or password incorrect. Tried creating a new app specific password. Same result. Is this possibly related to the server maintenance. Have verified all email settings, userid and password. This has worked for years until
                                                                                                              • Latest update caused issue in using marathi typingzoho

                                                                                                                With latest update now marathi typing does Not work in zohonotebook. I preferred zoho over other because it was supporting marathi font without any distortion.. But after new update,keyborad simply does not work
                                                                                                              • Login verification emails never received.

                                                                                                                I can't login to my account. You send a verification email, but it never arrives. This is a common problem, frequently caused by some relay point out there classifying the sender as a spammer. Is there anything I can do to bypass this? Maybe get a text
                                                                                                              • Global lists for Multi select

                                                                                                                It would be great if I could select a global list to use for a multi select dropdown filed.
                                                                                                              • Yahoo is rejecting e-mails sent from a Zoho server

                                                                                                                Diagnostic-Code: 4.7.0 [TSS04] Messages from 136.143.169.51 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes Remote-MTA: dns; mta5.am0.yahoodns.net
                                                                                                              • Yahoo blocks e-mail sent from Zoho servers

                                                                                                                Getting this for a bunch of Yahoo addresses. Do you know if some of your servers got blacklisted? Diagnostic-Code: 4.7.0 [TSS04] Messages from 136.143.169.51 temporarily deferred due to unexpected volume or user complaints - 4.16.55.1; see https://postmaster.yahooinc.com/error-codes
                                                                                                              • Working with dates and Function Field

                                                                                                                Hello friends! I'm trying to add days to a date, however the field function will always shows 00:00:00 after the resultant date. How can I display only the date, whithout the time? toDate(input.request_date.addDay(input.Prazo_acordado),"MM,d,yyyy") The code above will result something like "11-Feb-2020 00:00:00", but I want to display only "11-Feb-2020"
                                                                                                              • What's New in Zoho Analytics - November 2025

                                                                                                                We're thrilled to announce a significant update focused on expanding your data connectivity, enhancing visualization capabilities, and delivering a more powerful, intuitive, and performant analytics experience. Here’s a look at what’s new. Explore What's
                                                                                                              • Unable to send message;Reason:550 5.4.6 Unusual sending activity detected. Please try after sometime.

                                                                                                                Please help my account got blocked automatically, can you help me how to avoid it? Thanks so much
                                                                                                              • Unusual activity detected from this IP. Please try again after some time

                                                                                                                When i try to create new addresses on my account i am getting this error, it has been 24 hours now and i am still getting this error can anyone help
                                                                                                              • temporary system errorlouis

                                                                                                                J'essaye d'envoyer des mails avec mes 2 adresses mail qe nous avons sur le compte arthur@lepunch.fr et louis@lepunch.fr mais j'ai toujours le message temporaire system error, je reçois les mails mais impossible d'en envoyer a qui que ce soit
                                                                                                              • How to Cancel/Delete Queued Mail Merge?

                                                                                                                Hi. I just tried to do a mail merge before realizing there's a limit on number of sends. I accidentally sent one of my lists twice, and all of those emails are currently queued. Is there any way to cancel or delete a queued mail merge? Would love to be
                                                                                                              • SOLVED: Stopping Multiple Invitations when sync with Google Calendar

                                                                                                                I wanted to share this solution as I wasn't able to find it when searching through the Zoho community and via web search. The issue: When requestor books a meeting through Zoho Bookings, the requestor receives a confirmation email from both Bookings and
                                                                                                              • Next Page