Mike
> On 27 Jul 2015, at 19:14, Michael Doub <[email protected]> wrote:
>
> Peter, there is a function in the MasterLibrary that does this for you. Look
> in the Text section.
>
> https://www.dropbox.com/s/3wpwn3hfbmpl7sk/MasterLibrary.livecode?dl=0
>
> Regards,
> Mike
The MasterLibrary is impressive, I should have looked at it before.
The function didn’t seem to have the exact format that I needed but it was a
good stimulus to write one that meets my needs. I wanted to format the numbers
in what I call accounting format - thousands separators with negative numbers
in brackets (or parentheses depending from where one hails).
Thanks to LiveCode’s chunking the function is very short, dealing with the
arguments takes almost as much code as the function. I include it here in case
it is of use to others. I’m sure it could be improved and would welcome any
suggestions.
function numToAccounting pNum, pDecimalSeparator, pThousandSeparator
# Purpose: Converts a number to accounting format
# Inputs:
# pNum The number to be converted
# pDecimalSeparator The character to be used, default "."
# pThousandSeparator The character to be used, default ","
# Returns: The number in accounting format rounded
toplevel
# decimal places
local tCount
local tDecimalSeparator
local tNum
local tStart
local tThousandSeparator
# set the separators
if pThousandSeparator is empty then
put "," into tThousandSeparator
else
put pThousandSeparator into tThousandSeparator
end if
if pDecimalSeparator is empty then
put "." into tDecimalSeparator
else
put pDecimalSeparator into tDecimalSeparator
end if
#format the numbers
put format("%.2f", pNum) into tNum
put tDecimalSeparator into char -3 of tNum
put 0 into tCount
put the length of tNum - 3 into tStart
repeat with i = tStart down to 1
add 1 to tCount
if tCount = 4 then
if char i of tNum = "-" then exit repeat
put tThousandSeparator after char i of tNum
put 1 into tCount
end if
end repeat
if pNum < 0 then
put "(" into character 1 of tNum
put ")" after tNum
end if
return tNum
end numToAccounting
_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode