473,395 Members | 2,798 Online

# Formatting percentage?

Hi all,

I have a recordset iterating through and dumping out to the screen a series
of percentages, using the precision 5 and numericscale 2 etc.

When I dump them to the page some of the number are missing a trailing
zero - ie,

4.7

What I would very much like to do is add this back on - is there an easy way
to format this with a huge load of If...Then's to produce the same affect?

Thanks in advance for any help,

Regards

Rob
Jul 19 '05 #1
7 5413
Take a look at the formatNumber function. (I'm assuming you're using
VBScript.)

http://msdn.microsoft.com/library/en...rmatnumber.asp

Ray at work

"Rob Meade" <ro********@NO-SPAM.kingswoodweb.net> wrote in message
news:Kq*********************@news-text.cableinet.net...
Hi all,

I have a recordset iterating through and dumping out to the screen a series of percentages, using the precision 5 and numericscale 2 etc.

When I dump them to the page some of the number are missing a trailing
zero - ie,

4.7

What I would very much like to do is add this back on - is there an easy way to format this with a huge load of If...Then's to produce the same affect?

Thanks in advance for any help,

Regards

Rob

Jul 19 '05 #2
Ok - this gets a bit more odd now....

Currently I have a count which goes into this recordset.....each row gets a
number - a whole number (an integer)...

When I've updated all of these rows, lets say they look like this :

row1 5
row2 3
row3 3
row4 2
row5 1

I iterate through, and divide each one of these by the total of all of them,
so in the above :

row1 5/14 = 0.35714285714
row2 3/14 = 0.21428571428
row3 3/14 = 0.21428571428
row4 2/14 = 0.14285714285
row5 1/14 = 0.07142857142

now, at the moment after this division I also then multiply these by 100 -
to give me a percentage (this might be changed in a bit)...

row1 = 35.714285714
row2 = 21.428571428
row3 = 21.428571428
row4 = 14.285714285
row5 = 7.142857142

These get stored back into the recordset and pulled out in a sec, the
recordset has a adNumeric data type, with the 5 and 2 set for the precision
/ numericscale etc..so I'm assuming they end up something like this now :

row1 = 35.71
row2 = 21.43
row3 = 21.43
row4 = 14.29
row5 = 7.14

When *these* display to the page they'll all be fine, no 7.1 or anything
like that, but as these are not preset by me I cannot guarantee this, so I
wanted to find a way to make sure that after the decimal place there are
always 2 figures.

I stumbled across FormatPercent - its name suggested this might be what I
want.

I've had mixed results using it, from an error if I try this :

<%=FormatPercent(RS("Relevance"),2,0,0)%>

To getting the numbers multipled by a further 100 if I CONVERT the
RS("Relevance") value first, so far the only conversion that seems to give
me what I want is CCur (currency) - Int's are out, as are Doubles...

So, assuming now that I go with CCur - not that I was overly happy with this
solution, but I now need to drop my * 100 above, and thus I 'assume' I get
this :

row1 5/14 = 0.36
row2 3/14 = 0.21
row3 3/14 = 0.21
row4 2/14 = 0.14
row5 1/14 = 0.07

Now when they display they are always WHOLE percentages - ie 36%, 21% etc -
I never see a 21.72, or 1.01 ..

If anyone can give me some help with this I would be most grateful.

Best regards

Rob
Jul 19 '05 #3
"Ray at <%=sLocation%> [MVP]" wrote...
Take a look at the formatNumber function. (I'm assuming you're using
VBScript.)

Hi Ray,

Many thanks for your reply and info, please ignore my other post which was

That has resolved the problem nicely :o)

Regards

Rob
Jul 19 '05 #4
"Rob Meade" <ro********@NO-SPAM.kingswoodweb.net> wrote in message
news:AP*********************@news-text.cableinet.net...
Ok - this gets a bit more odd now....

Currently I have a count which goes into this recordset.....each row gets a number - a whole number (an integer)...

When I've updated all of these rows, lets say they look like this :

row1 5
row2 3
row3 3
row4 2
row5 1

I iterate through, and divide each one of these by the total of all of them, so in the above :

row1 5/14 = 0.35714285714
row2 3/14 = 0.21428571428
row3 3/14 = 0.21428571428
row4 2/14 = 0.14285714285
row5 1/14 = 0.07142857142

now, at the moment after this division I also then multiply these by 100 -
to give me a percentage (this might be changed in a bit)...

row1 = 35.714285714
row2 = 21.428571428
row3 = 21.428571428
row4 = 14.285714285
row5 = 7.142857142

These get stored back into the recordset and pulled out in a sec, the
recordset has a adNumeric data type, with the 5 and 2 set for the precision / numericscale etc..so I'm assuming they end up something like this now :

row1 = 35.71
row2 = 21.43
row3 = 21.43
row4 = 14.29
row5 = 7.14

When *these* display to the page they'll all be fine, no 7.1 or anything
like that, but as these are not preset by me I cannot guarantee this, so I
wanted to find a way to make sure that after the decimal place there are
always 2 figures.

I stumbled across FormatPercent - its name suggested this might be what I
want.

I've had mixed results using it, from an error if I try this :

<%=FormatPercent(RS("Relevance"),2,0,0)%>

To getting the numbers multipled by a further 100 if I CONVERT the
RS("Relevance") value first, so far the only conversion that seems to give
me what I want is CCur (currency) - Int's are out, as are Doubles...

So, assuming now that I go with CCur - not that I was overly happy with this solution, but I now need to drop my * 100 above, and thus I 'assume' I get
this :

row1 5/14 = 0.36
row2 3/14 = 0.21
row3 3/14 = 0.21
row4 2/14 = 0.14
row5 1/14 = 0.07

Now when they display they are always WHOLE percentages - ie 36%, 21% etc - I never see a 21.72, or 1.01 ..

Rob,
I'm not exactly sure what you are trying to accomplish. It sounds like you
want to store the percentage value in the database with 2 decimal places.
And it sounds like you are concerned that if the value is something like
7.10, then it will be displayed on the page as 7.1. So, to get around that
problem, use the FormatNumber function when you want to display the result,
and append the percentage symbol to the end:

<%=FormatNumber(RS("Relevance"),2,0,0) & "%" %>

In this case, if RS("Relevance") has a value of 7.1, it should be displayed
as 7.10, and then the % will be printed at the end.

Hope this helps.
Peter Foti

Jul 19 '05 #5
"Peter Foti" wrote ...
It sounds like you want to store the percentage value in the database with 2 decimal places. And it sounds like you are concerned that if the value is something like
7.10, then it will be displayed on the page as 7.1.

Thats it in a nut shell :o)

Thanks for your reply Peter, all working now :o)

Regards

Rob

Jul 19 '05 #6
I never noticed the FormatPercent function. So thanks for making me notice
that! :]

Ray at work

"Rob Meade" <ro********@NO-SPAM.kingswoodweb.net> wrote in message
news:Mw*********************@news-text.cableinet.net...
"Ray at <%=sLocation%> [MVP]" wrote...
Take a look at the formatNumber function. (I'm assuming you're using
VBScript.)

Hi Ray,

Many thanks for your reply and info, please ignore my other post which was

That has resolved the problem nicely :o)

Regards

Rob

Jul 19 '05 #7
"Ray at <%=sLocation%> [MVP]" wrote ...
I never noticed the FormatPercent function. So thanks for making me notice that! :]

hehe - its probably useful in some abstract instance somewhere :o)

Regards

Rob
Jul 19 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.