Om jag skrivit en webb-applikation i .Net och sedan vill jag utifrån kunna ändra hur denna presenterar numeriska tal (decimalpunkt/decimalkomma). Var utför jag denna ändring så att den slår igenom i min applikation? Försökte ändra via "Regional settings" men det verkade inte ha någon effekt. Ändrade du i regional settings på servern? Ja, på servern! Du kan skapa en ny CultureInfo, som du modifierar som du vill ha den. Sedan skickar du den som en parameter till din konverteringsfunktion. Jag vill inte skapa en ny CultureInfo, jag vill styra den befintliga utifrån! Varför vill du inte det? Hur är det om du ändrar i web.config. Verkar ha lyckats nu! Grejen är ju den att om du ändrar i regional settings så ändrar du ju för dig själv, men asp.net kör ju på en annan användare. Så du skulle nog kunnat ändrat Regional settings för just asp.net användaren. Hade du kört winforms så hade det nog fungerat som du hade tänkt...Decimalpunkt eller decimalkomma
Sv: Decimalpunkt eller decimalkomma
Hur formaterar du talen? - x.ToString();
/mickeSv: Decimalpunkt eller decimalkomma
Försöker egentligen ta reda på hur man utifrån ändrar de värden man erhåller via "CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator"Sv: Decimalpunkt eller decimalkomma
Kolla i hjälpen på "CultureInfo Class" Speciellt CultureInfo.NumberFormatInfo.
Den kan du skicka in som parameter till:
x = Convert.ToString(tal, NummerInfoObjektet);
/mickeSv: Decimalpunkt eller decimalkomma
Sv: Decimalpunkt eller decimalkomma
Vad är skillnaden om du skapar en "ny" klon av din befintliga CI, modifierar den, skickar den som en parameter till en metod och får det att funka. Jämfört med att du inte vill skapa en ny, utan försöker modifiera en klass som får sina properties från tråden de exekveras i, och inte lyckas lika bra.
Alla exempel jag sett skapar en ny Cultureinfo som sedan tillämpas. Det är möjligt att det _går_ att komma runt, men det verkar inte vara så värst enkelt.
Har du någon motivering till att inte vilja skapa någon ny (mer än att det inte verkar bra)?
/mickeSv: Decimalpunkt eller decimalkomma
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-GB" uiCulture="en-GB"
/>
jämfört med:
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="sv-SE" uiCulture="sv-SE"
/>
Givetvis måste du ju använda dig av antingen System.Globalization.CultureInfo.CurrentCulture
eller System.Globalization.CultureInfo.CurrentUICulture när du formaterar din sträng... men hos mig funkar det iallafallSv: Decimalpunkt eller decimalkomma
Man kan läsa in språkinställningen från t.ex. Web.config, skapa en ny CultureInfo och sätta aktuell tråd till denna. Alternativt skulle man kunna utgå från browsern's språkinställning så att varje individ får decimaltecken enligt sina inställningar. Tack för hjälpen!Sv: Decimalpunkt eller decimalkomma