Toon posts:

[ASP.net] valuta instellingen *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik voor het weergeven van een prijs dit stukje code:

DataBinder.Eval(Container.DataItem, "UnitCost", "{0:c}")

Nu krijg ik het resultaat: € 2,00 perfect

Gebruik ik deze code:

DataBinder.Eval(Container.DataItem, "UnitCost")

Krijg ik: 2,0000 dat is mij 2 nullen te veel....

He kan ik dat veranderen ? ik wil nl. graag de prijs weergeven zonder valuta teken zodat ik het zelf voor plaats en het niet meer afhankelijk is van de landinstellingen van de server

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
in vb(script) bestaat de functie formatnumber, ik naam aan dat een dergelijke functie ook in .net bestaat

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Ipv ze naar een Currency te gaan formatteren, formateer je ze naar een numerieke waarde met 2 cijfers na de komma.
Dan kan je zelf nog altijd het gepaste currency-symbool gaan tonen.

Je kan bv. in plaats van 'c' , 'f' gebruiken, en je kan ook het aantal decimalen specifieren.
Doe je dat niet, dan wordt het aantal decimalen gebruikt dat gespecifieerd is in de NumberFormatInfo.

[ Voor 35% gewijzigd door whoami op 20-10-2003 14:09 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
ik moet dus :

DataBinder.Eval(Container.DataItem, "UnitCost", "{0:f}")

gaan gebruiken ?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 20 October 2003 @ 14:06:
Je kan bv. in plaats van 'c' , 'f' gebruiken, en je kan ook het aantal decimalen specifieren.
JE kan het toch ook goed zetten met de CultureInfo Class?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Ja, maar heb je dan niet onmiddellijk alle instellingen voor die bepaalde culture?

't Lijkt me dat dat niet altijd gewenst is, stel een Engelsman bezoekt die site, maar de prijzen van de producten zijn bv. in Euro, dan is het wel best dat er EURO als currency symbool getoond wordt: 100 euro, en niet 100 £
De overige instellingen zal die engelsman wel graag met zijn regional settings zien.

Of praten we langs elkaar? :P

https://fgheysels.github.io/


Verwijderd

gorgi_19 schreef op 20 oktober 2003 @ 19:16:
Je kan het toch ook goed zetten met de CultureInfo Class?
Jep ik doe het zo:
Visual Basic .NET:
1
2
3
4
5
6
        Dim nfi As New System.Globalization.NumberFormatInfo
        nfi.CurrencyPositivePattern = 2
        nfi.CurrencySymbol = "€"
        nfi.CurrencyDecimalSeparator = ","
        nfi.CurrencyGroupSeparator = "."
        nfi.CurrencyDecimalDigits = 2

en dan :
Visual Basic .NET:
1
 whatever.ToString("C", nfi) 
whoami schreef op 20 October 2003 @ 19:22:
Ja, maar heb je dan niet onmiddellijk alle instellingen voor die bepaalde culture?

't Lijkt me dat dat niet altijd gewenst is, stel een Engelsman bezoekt die site, maar de prijzen van de producten zijn bv. in Euro, dan is het wel best dat er EURO als currency symbool getoond wordt: 100 euro, en niet 100 £
De overige instellingen zal die engelsman wel graag met zijn regional settings zien.

Of praten we langs elkaar? :P
Zo kun je ook voor de engelsman:

Visual Basic .NET:
1
2
3
4
5
6
        Dim engelsman As New System.Globalization.NumberFormatInfo
        engelsman.CurrencyPositivePattern = 1
        engelsman.CurrencySymbol = "£"
        engelsman.CurrencyDecimalSeparator = ","
        engelsman.CurrencyGroupSeparator = "."
        engelsman.CurrencyDecimalDigits = 2

en dan :
Visual Basic .NET:
1
 whatever.ToString("C", engelsman) 
whoami schreef op 20 oktober 2003 @ 20:12:
DAt is de NumberFormatInfo class, en niet de CultureInfo.
oeps dan heb ik niets gezegd

[ Voor 64% gewijzigd door Verwijderd op 20-10-2003 20:16 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
DAt is de NumberFormatInfo class, en niet de CultureInfo.

https://fgheysels.github.io/


Verwijderd

whoami schreef op 20 oktober 2003 @ 20:12:
DAt is de NumberFormatInfo class, en niet de CultureInfo.
Nu wel met de cultureinfo class ( dit plaats je bvb in je global.asax )

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
Sub Application_BeginRequest(Byvall sender As Object, ByVal e As EventArgs)
        Dim nfi As New System.Globalization.NumberFormatInfo
        nfi.CurrencyPositivePattern = 2
        nfi.CurrencySymbol = "€"
        nfi.CurrencyDecimalSeparator = ","
        nfi.CurrencyGroupSeparator = "."
        nfi.CurrencyDecimalDigits = 2
        Dim culture As System.Globalization.CultureInfo
        culture = New System.Globalization.CultureInfo("nl-BE")
        culture.NumberFormat = nfi
        System.Threading.Thread.CurrentThread.CurrentCulture = culture
End Sub

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Mjah, met bovenstaande code ga je er dan wel voor zorgen dat iedere bezoeker van jouw site met belgische regional settings gaat surfen....
Da's niet altijd even handig...

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 laat een user altijd kiezen welke taaltemplate die neemt; afhankelijk welke talen ik klaar heb gezet in de resourcemanager.. :P

Maar whoami, heb je in principe wel gelijk in; alleen bij mij gaan alle regionale settings altijd om, niet alleen de valuta. Vandaar dat cultureinfo in mijn geval ook nog bruikbaar is. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

whoami schreef op 20 October 2003 @ 19:22:
Ja, maar heb je dan niet onmiddellijk alle instellingen voor die bepaalde culture?

't Lijkt me dat dat niet altijd gewenst is, stel een Engelsman bezoekt die site, maar de prijzen van de producten zijn bv. in Euro, dan is het wel best dat er EURO als currency symbool getoond wordt: 100 euro, en niet 100 £
De overige instellingen zal die engelsman wel graag met zijn regional settings zien.

Of praten we langs elkaar? :P
Ik geloof dat als je in je web.config plaats culture info nl-be dat dat voor de server geldt.
Zonder gaf hij bij mij dollar's (mijn persoonlijke instellingen staan NIET op dollars). Met die extra lijn in de web.config gaf hij mooie euro's. Dus een engelsman gaat dan toch ook euro's krijgen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Verwijderd schreef op 20 October 2003 @ 23:02:

Ik geloof dat als je in je web.config plaats culture info nl-be dat dat voor de server geldt.
Zonder gaf hij bij mij dollar's (mijn persoonlijke instellingen staan NIET op dollars). Met die extra lijn in de web.config gaf hij mooie euro's. Dus een engelsman gaat dan toch ook euro's krijgen?
Euro ja, maar de andere instellingen, zoals bv. de datum etc zullen ook in het belgische formaat staan.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Het moet dus in de aspx file aangepast worden...
Zo worden de gegevens er nu in geplaats:
code:
1
2
<b>Prijs: </b>
                                                        <%# DataBinder.Eval(Container.DataItem, "UnitCost", "{0:c}") %>
hoe kan dit (altijd) naar euro omgezet worden ? Kan er niet gewoon iets met dit deel gedaan worden? :
code:
1
"{0:c}"

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Antwoord staat toch al bijna letterlijk in de thread? :? (oa Toffenboy, whoami en ik hebben het er over)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Je kan met deze code de culture-settings van de huidige user verkrijgen:
code:
1
CultureInfo c = new CultureInfo(Request.UserLanguages[0]);


Dan kan je dit doen:
code:
1
c.NumberFormat.CurrencySymbol = "€";


Dan zou iedere bezoeker € als currency symbol moeten krijgen op je site, en zouden de regional settings van die user verder moeten toegepast worden.
Je zult wel nog in je Page_Load de te gebruiken Culture moeten zetten:
code:
1
System.Threading.Thread.CurrentCulture = c;


Een beetje zoals toffenboy reeds gezegd had dus, maar iets aangepast.

[ Voor 7% gewijzigd door whoami op 21-10-2003 15:08 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
betekend dat ook dat als je amerikaanse instellingen heb de $ als symbool krijgt, met de euro prijs ? dat gaat dan nl. niet goed...

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Wat doen jullie moeilijk, je kan toch ook dit gebruiken:
code:
1
"{0:F2}"

Verwijderd

Topicstarter
Hardstikkende bedankt Riegstar !!!

Dit was precies waar ik naar zocht , het valuta symbool kan je hier wel gewoon voor plaatsen !

Idd. waarom gemakkelijk doen als het moelijk kan !

Verwijderd

Topicstarter
Weet iemand als er nog meer soorten hiervoor zijn ? :

DataFormatString="{0: ????????????????

DataFormatString="{0:c}" -----------> met valuta instellingen van server dus € 2,34

DataFormatString="{0:F2}" -----------> zonder gewoon 2,34

DateFormatString="{0:d}" ----------> voor datum

Zijn er ook standaard code's voor bijvoorbeeld euro , dollar, BF etc. ?
Leek me wel gemakkelijk om daar een goed overzicht voor te hebben...

[ Voor 22% gewijzigd door Verwijderd op 24-10-2003 09:53 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1