11. august 2012 - 17:49Der er
8 kommentarer og 1 løsning
Punktum og komma i money
Hej eksperten,
Jeg sidder i en lidt underlig situation, hvor min lejede ms sql server returnerer money forkert. Enten det, eller min min ASP.Net side fortolker forkert.
Mit problem er i hver fald at f.eks. værdien: "30" i en tabel, bliver returneret som "30,0000", i stedet for f.eks. "30.0000". Det er jo hvad det er, men den hopper selv frem og tilbage mellem at bruge punktum eller komma, eller i hvert fald opfører den sig sådan.
Det betyder at jeg, når skal gange min værdi fra money, på min asp.net side, nogle dage kan få 30kr og andre gange 30.000kr returneret.
Har I et fif til hvordan jeg kan tjekke om den opfører sig anstændigt og ellers om der skal korrigeres for det og replace "," med "."
Er datatypen money i string når det bliver trukket ud da? Jeg føler, at jeg lige så godt kunne have gemt mine beløb i float, med de problemer det skaber... selvom det ville have været noget snusk.
Hvordan kan jeg angive eksplicit culture for konverting mellem float og string? Er det bare som man ellers normalt sætter en global culture i et asp.net projekt? Af en eller anden grund, vil en ændring via web.config ikke virke, så jeg ændrer currentCulture i BeginRequest via min global-fil.
Noget ala dette: Dim newCulture As CultureInfo = DirectCast(System.Threading.Thread.CurrentThread.CurrentCulture.Clone(), CultureInfo) newCulture.NumberFormat.CurrencyDecimalDigits = "." newCulture.NumberFormat.CurrencyDecimalSeparator = "" Thread.CurrentThread.CurrentCulture = newCulture
Nu ved jeg jo ikke om det virker da den ikke nødvendigvis brokker sig pt... :P
Nu går der lige spørgejørgen i den. For dit svar er modtaget. :)
Hvorfor skal man bruge datatypen decimal i stedet for money? Jeg synes ikke umiddelbart det giver mening, ikke at bruge en datatype der er lavet til præcis det man skal putte i kolonnen.
Og hvis man angiver en global CultureInfo så behøver man vel ikke gøre det ved hvert parse/toString?
Du kan selv om hvorvidt du vil satte cultur globalt eller per kald.
Jeg er generelt lidt skeptisk over globalt.
Men smag og behag.
Synes godt om
Ny brugerNybegynder
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.