Avatar billede it-dyret Nybegynder
09. oktober 2007 - 14:03 Der er 4 kommentarer og
1 løsning

Håndtering af valuta formatering

Jeg har overtaget et projekt lavet af en anden programmør i VB.Net - og har opdaget en uhensigtsmæssig afhængighed mellem koden og krav til sprogindstilinger i driftsmiljøet. Der er således følgende kode:

strTravelCost = Format(CStr(iTravelCost), "currency")
Me.txtTravel.Text = CStr(strTravelCost).Replace("$", "")

Koden gør ganske enkelt det, at den formaterer et kommatal som den pågældende valuta efter serverens indstillinger og fjerner derefter dollarstegnet. Afhængigheden er dermed, at sprogindstillingerne skal være sat til Engelsk(USA), da det er vigtigt, at der ikke er valutabetegnelse senere i koden, hvor den bliver valideret...

Mit spørgsmål er, hvordan man gør dette pænere? Er det muligt at kalde en metode, som formaterer et "valuta-format" om til et kommatal? Altså det omvendte af: "Format(CStr(iTravelCost), "currency")".

Endvidere undrer det mig, at et "valutafelt" MED dollartegn (eller kroner) fejler, hvis man bruger denne control:

<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtDeposit" ErrorMessage="Enter the amount" Operator="DataTypeCheck" Type="Currency"></asp:CompareValidator>

Det fungerer fint, hvis man validerer uden dollartegn... Hvorfor?
Avatar billede arne_v Ekspert
10. oktober 2007 - 02:30 #1
Me.txtTravel.Text = iTravelCost.ToString()

eller

Me.txtTravel.Text = iTravelCost.ToString("0.00")

vil jeg tro.
Avatar billede it-dyret Nybegynder
10. oktober 2007 - 12:16 #2
Jeg endte med at bruge:

Format(CStr(iTravelCost), "Standard")

for at få tusindtalsseparator på...

Kan du forklare mig, hvorfor CompareValidator'en ikke virker, når indholdet er valuta (altså outputtet fra "Format(CStr(iTravelCost), "currency")")?
Avatar billede arne_v Ekspert
14. oktober 2007 - 05:30 #3
Me.txtTravel.Text = iTravelCost.ToString("0,0.00")

bør lave tusind separator
Avatar billede it-dyret Nybegynder
18. oktober 2007 - 11:20 #4
Jeg kom frem til en løsning (som beskrevet den 10/10-2007 12:16:29), delvis på baggrund af arne_v's kommentar.

Du er velkommen til at smide et svar, så jeg kan lukke spørgsmålet.
Avatar billede arne_v Ekspert
18. oktober 2007 - 15:19 #5
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester