[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1208
  • Last Modified:

Format currency in ASp.Net

I found this link and been trying to format the text displayed to currency but not getting the right format:
http://msconline.maconstate.edu/tutorials/ASPNET2/ASPNET07/aspnet07-01.aspx
I want:
$48,300.00, $615,23.00 , $0.80 , $39.00

This is what I have and what i've tried:
DataTextFormatString={0:#,#.##} -- 48300,00 --> 48.300
                                   615,23 -> remains the same
                                   0,80 --> ,8
                                   39,00 --> 39

Tried:{0:$#,#.##} : same results except it has $
Tried : {0:0.00} : goes back to orig #s that have commas . Ex: 48300,00
Tried : (0:C} . With this 48,300 shows as : 48.300,0

what to do?
0
Camillia
Asked:
Camillia
  • 8
  • 8
1 Solution
 
sirbountyCommented:
Why not use the function FormatCurrency?

txtValue.Text=FormatCurrency(YourCurrency, 2)
0
 
CamilliaAuthor Commented:
i'm binding to a gridview, If I want to use FormatCurrecny, I have to do it in itemdatabound event??
0
 
dstanley9Commented:
What culture is the server using?  FormatCurrency will use the format defiend by the system's culture (presumably the same format that {0:C} uses.

Try

={0:'$'#,##0.00}

The zero placeholders will dispaly a 0 if there is no digit there, the # will not.
0
Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

 
dstanley9Commented:
Also the $ will display the currency defined by the system.  If the system does not define a currency symbol, none will be used.
0
 
CamilliaAuthor Commented:
no, that didnt do it either. I think I have to use FormatString.

The culture in my browser is english-US.

I dont want to display the "$".  (i just realized it). I just want to display the value correctly:
12,999.89 for example..

I think I have to use FormatString...but in itemdatabound??
0
 
CamilliaAuthor Commented:
if I dont want the "$", I think i have to use FormatNumber...but again, in itemdatabound?
0
 
dstanley9Commented:
It's the culture on the _server_ that is used, not in the browser.

If you don't  want the currency symbol, just use ={0:#,##0.00}
0
 
dstanley9Commented:
You shouldn't have to use FormatNumber.  DataTextFormatString should format it the way you want if you use the right string.

FormatNumber will also use the settings in the _server's_ control panel.  So it will use commas instead of decimal points based on your examples above.
0
 
CamilliaAuthor Commented:
***************does NOT format it correctly. I just tried it: *****************

If you read my orig post, i've tried several things and still no.  *** I want to try FormatNumber but since i'm binding to gridview, I think i have to do the formatting in itemdatabound****

I tired your last suggestion :
48300,00  shows up at 48.300,00
39,00 still shows up as 39,00 instead of 39.00
0
 
CamilliaAuthor Commented:
just saw your other msg:

"FormatNumber will also use the settings in the _server's_ control panel"...where do I check that??
0
 
dstanley9Commented:
Start-->Control Panel-->Regional and Language Options
0
 
dstanley9Commented:
OK So the , and . placeholders must use the regional settings as well.  
0
 
CamilliaAuthor Commented:
ah, this is what I see:

For currecny : $123,456,789.00
and for number : 123,456,789.00

Still dont understand why 48300,00  shows up as 48.300,00
0
 
dstanley9Commented:
Hmm.  The site is not changing the culture of the thread someplece else, is it?
0
 
CamilliaAuthor Commented:
I can step thru the code but i dont think so. I just get the total in the stored proc and bind it... this is what i used in the aspx page, in the gridview:
{0:#,##0.00}

just noticed it...that does have a "dot" in it...after the second zero and before the double zeros. is that why??
0
 
dstanley9Commented:
The format code tells .NET to use groupings of 3 separated by a comma (The ##0 between the comma and . define the grouping size.  The first zero says to make sure that at least one digit is displayed to the left of the decimal (even if it's a zero) and the two zeros on the right of the decimal tell it to always show two digits to the right of the decimal (even if one or both are zeros).

Something must be changing either the culture or the default NumberFormatInfo.  Double.ToString() Uses the default NumberFormatInfo to convert to a string.  You can look at System.Globalization.NumberFormatInfo.CurrentInfo
and System.Threading.Thread.CurrentCulture in the debugger and see what culture and separator characters are being used.
0
 
CamilliaAuthor Commented:
i'll track it down and see what's going on. Will post back.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 8
  • 8
Tackle projects and never again get stuck behind a technical roadblock.
Join Now