Message: 21
Date: Fri, 13 Jan 2006 15:40:10 -0800
From: Marty Knapp <[EMAIL PROTECTED]>
Subject: Formatting numbers
To: Revolution User List <use-revolution@lists.runrev.com>
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Does somebody have a suggestion for formatting numbers with commas for a
printed report? It wil have columns of data, with numbers ranging from
small to large. The larger ones are hard to read, so I'd like to insert
commas at the appropriate places. I can think of clunky ways to do it,
but thought I'd ask here in case someone had already brewed up something
nice.
Thanks,
Marty Knapp
Marty,
Here are a couple of number formatting functions I use a lot.
The first is the standard comma formatting and the second puts the
number into scientific format.
For example, the number 12225677.98 formats to
Comma format: 12,225,677.98
Scientific format 1.22*10^7
Jim
function commaFormat tNum
put tNum mod 1 into remainder
delete char 1 of remainder
put trunc(tNum) into tNum
put the number of chars in tNum into n
repeat with i = 1 to trunc((n-1)/3)
put comma after char n - 3*i of tNum
end repeat
return tNum& remainder
end commaformat
function sciFormat tNum,sigFigures
if tNum < 0 then
put "-" into sign
else put empty into sign
put abs(tNum) into tNum
if sigFigures is empty then put 3 into sigFigures --Default
significant figures.
put 0 into count
if tNum >= 1 then
repeat until tNum < 10
divide tNum by 10
add 1 to count
end repeat
put round((10^(sigFigures-1))*tNum)/10^(sigFigures-1) into tNum
return sign & (char 1 to sigFigures + 1 of tNum) &"*10^" & count
end if
if tNum < 1 then
repeat until tNum >= 1
multiply tNum by 10
add 1 to count
end repeat
end if
return sign & (char 1 to sigFigures + 1 of tNum) & "*10^-" & count
end sciFormat
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution