Format currency and percentage

hi EE
I would like to format currency and percentages as follows:

1) Currency - thousand seperator and accuracy to 2 decimal places (rounding to 2 decimal points if 3 digits given after the decimal pt)

ex: 3,001.987 --> 3,001.99

2) Percentage - accuracy to 2 decimal places (rounding to 2 decimal points if 3 digits given after the decimal pt)

What would be the correct string format in order to format to these specifications?
thx
Who is Participating?

Commented:
String.Format("{0:C2}", 1234.56)

String.Format("{0:P2}", .1234)
0

Commented:
currency:
String.Format("{0:C}", 1234.56)

percentage

String.Format("{0:P}", .1234)
0

Commented:
What YZlat will work fine. Another example follows. Say, for example, you were storing your values as either Single or Double objects like so:

Dim myMoney As Double = 2000.356
Dim myPercent As Double = 0.15797

myMoney.ToString("c") 'returns \$2,000.36
myPercent.ToString("p") 'returns 15.80 percent as the 9 rounds the 7 to an 8. Unsure how you would force it to remain unrounded

But that's the method I always use since the ToString() function on those datatypes supports it.

Good luck!
0

Author Commented:
YZlat,
Not sure if I am doing something incorrect but when I try for the percentage an example .07657
it will display it as 7.65 whereas I was looking for 7.66.

Also, since the string format P2 first multiplies the input by 100 and then displays it, something like 7.50 will display as 750.00 , is there a way to turn this multiplication factor off?
0

Commented:
LuckyLucks, I just tried

Dim number As Double = 0.07657
Label1.Text = String.Format("{0:P2}", number)

and Label1 displayed 7.66%
0

Commented:
also 7.50 in percentages will be 750.00. That's the way percentage is calculated. What would you want to be displayed instead of 7.5??