Avatar billede suppenudel Nybegynder
09. februar 2007 - 20:57 Der er 7 kommentarer og
1 løsning

Hjælp! Beløb forstørres i betalingsmodul.

Hej,

Jeg bruger FriBetaling.dk's modul som kræver at det samlede beløb videresendes til dem ned til sidste møntenhed, uden komma eller anden seperator. Dvs. kr. 5.984,21 skal skrives: 598421. Dette konverterer fra kommatal til heltaljeg via denne regex-metode:

  Dim FbBelob As Decimal = order.Total
  Dim re As Regex = New Regex("[^\d]")
  FbBelob = re.Replace(FbBelob, "")

Det har virket fint indtil videre, lige indtil nu hvor en kunde har indtastet en ordre på 2739,88 kr. og denne kunde står nu til at skulle blive trukket for 27398,75 i FriBetalings modul..! Jeg tror det er bedst jeg bare lader være med at udføre capture denne, men hvordan kan det lige lade sig gøre, er der noget galt i den måde det gøres på?

Mvh.
Avatar billede dr_chaos Nybegynder
10. februar 2007 - 09:45 #1
Det lader til at beløbet på en eller anden måde er blevet konveret til 27398,8 og derefter afrundet til 27398,75
Avatar billede dr_chaos Nybegynder
10. februar 2007 - 09:54 #2
Din kode ser umiddelbart ud til at virke fint.
Laver du nogen form for afrundning inden du sender beløbet afsted?
Avatar billede snepnet Nybegynder
14. februar 2007 - 01:49 #3
Det virker som en risikobetonet måde at gøre det på... Det forudsætter at du aldrig har mere en 2 decimaler på din order.Total... Alle tal med mere end to decimaler vil give dig tilsvarende fejl.
Mvh
Avatar billede snepnet Nybegynder
14. februar 2007 - 01:50 #4
Og for den sags skyld må du jo heller aldrig have færre en 2 decimaler.
Mvh
Avatar billede snepnet Nybegynder
14. februar 2007 - 02:06 #5
Jeg er egentlig overrasket over at det du har der virker... Det må være en vb-ting... Jeg vil anbefale dig at lave dine beløb om til tekster, hvor du selv styrer formatet - inden du benytter dit regex.
Mvh
Avatar billede suppenudel Nybegynder
12. marts 2007 - 18:17 #6
Hej, sorry jeg ikke har meldt tilbage før. Jeg kører en regex på den via client script som sørger for at eventuelle ekstra decimaler bliver rundet ned til to. 

Det virker når jeg gemmer order.Total i en textbox som er skjult - og så henter det ud når jeg skal bruge det.. nok ikke det mest optimale - Er det det samme som at lave tallet om til tekst som du siger snepnet, eller kan det gøres smartere end at sige f.eks. txtTextbox1.text = order.Total?
Avatar billede suppenudel Nybegynder
16. november 2007 - 22:00 #7
Jeg bliver vist nødt til at lukke ned. Skriv endelig hvis der er forslag eller hvis I vil have point.. :-)
Avatar billede neoman Novice
16. november 2007 - 22:05 #8
det der går galt for dig er Culture settings.  Du har åbenbart engelsk setting et eller andet sted. Det der sker er at 1234,45 bliver til 12345 da på engelsk er decimal separatoren "." Hvis du havde danske culture settings, og ikke gemmer beløb i db'en ved string conversions men direkte f.eks. med parametre, så burde den opføre sig ordentligt:)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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