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?