Hi Alex, To be honest, I'm not sure if there's a real life case for variable sizing of groups! I'm using the specs for the information returned by the Unix locale LC_MONETARY command and it specifically talks about the group spec this way. Seems unlikely but it adds to the spice of writing a script to deal with it!
I have come across some currencies where the neg sign comes after the currency symbol so I think I will have to add another parameter for that but For now, always make the neg sign either the first char or the last char in the string, so "-$12.34" and "12.34$-". Good question on the zero issue. The first thing I realised with this is that if the number of decimals is greater than the number of digits passed in, zero-filling is needed. For example, if I pass in 5 and the number of decimals is 2, then the numbers after the decimal need to be 05, not 5. But in answer to your question, there should be a zero before the decimal point if the number is less than 1, so $0.05 or -$0.05. Thanks! Pete Haworth
http://www.mollysrevenge.com http://www.sonicbids.com/MollysRevenge http://www.myspace.com/mollysrevengeband On Mar 1, 2011, at 4:42 PM, Alex Tweedly wrote: > I'm curious is there really a real-life use-case for the group spec ? i.e. > variable size groupings of digits ? > > Not sure what order you want for currency and neg sign ? Should it be > $-123 or -$123 > and should it be 123-$ or 123$- ? > > Should there always be a 0 before the "point" ? i.e. could the result be > .12 rather than 0.12 ? > How about -.12 rather than -0.12 ? > > Thanks for a fun challenge .... > -- Alex. > > > > On 01/03/2011 04:55, Peter Haworth wrote: >> OK, here's an amusing exercise in scripting for you experts out there, but >> I'm giving away a prize! I will give the person who provides the best >> solution a copy of my band's latest CD, Aged 10 years. the definition of >> "best" is strictly my opinion! If you don;t like traditional Celtic music >> (including bagpipes), we;ll just do the script for the fun of it and sell >> the CD on eBay!!! >> >> You have an integer value that needs to be formatted into a currency value. >> It is stored as a positive or negative binary value no matter how many >> decimal places it has (eg 10000 = $100.00). You have the following >> formatting characters to deal with: >> >> currency symbol: always present >> >> currency symbol position: 1 = before the number, 0=after the number >> >> decimal delimiter : could be empty >> >> number of decimals: could be zero and will be if decimal point char is empty >> >> negative sign character: always present >> >> negative sign position: 1= at the start of the formatted number , 0= at the >> end of the formatted number >> >> group separator character: Specifies the character separator used for >> grouping digits to the left of the decimal delimiter in formatted monetary >> quantities. Could be present even if no decimal delimiter is specified. >> Also could be empty, meaning no grouping. >> >> grouping spec: Specifies a string that defines the size of each group of >> digits in formatted monetary quantities. Only present if the group separator >> is not empty. Consists of a sequence of semicolon-separated integers. Each >> integer specifies the number of digits in a group. The initial integer >> defines the size of the group immediately to the left of the decimal >> delimiter. The following integers define succeeding groups to the left of >> the previous group. If the last integer is not -1, the size of the previous >> group (if any) is repeatedly used for the remainder of the digits. If the >> last integer is -1, no further grouping is performed. >> >> Deadline is midnight Friday March 4th, California time. Good luck! >> >> Pete Haworth >> >> >> >> >> >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode >
_______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode