Avatar billede sorenstrom Nybegynder
25. august 2002 - 13:20 Der er 8 kommentarer og
1 løsning

Beregninger i VB

Jeg har to tekstfelter, hvor der står tal.
I den ene står 4.400,00 (har brugt Format)
I den anden står der 1.100,00

Jeg vil nu gerne have disse to tal lagt sammen,
men jeg får konsekvent resultatet 5,5. HVORFOR?
Avatar billede stigc Nybegynder
25. august 2002 - 13:28 #1
fordi dine "regional settigngs" kører engelsk format. Dermed opfattes det . som et dansk komma. altså 4,4 + 1,1

Skriv :
4400.00 + 1100.00

eller gå i dit "kontrol panel" og ændre "regional settings" til dansk!
Avatar billede medions Nybegynder
25. august 2002 - 13:28 #2
MsgBox (Format(CInt("4.400,00") + CInt("1.100,00"),2))

//>Rune
Avatar billede oswald Nybegynder
25. august 2002 - 13:28 #3
VB opfatter '.' som ',' forbi sådan er det på engelsk. (Internationalicering har ikke lige slået igennem på det punkt ;)) For at få det et at virke skal du fjerne '.' og derefter erstatte ',' med '.'
Oswald
Avatar billede sorenstrom Nybegynder
25. august 2002 - 13:48 #4
Jeg har åbenbart formuleret mig forkert. Problemet er, at jeg ikke får resultatet 5.500,00 men kun 5.5
Avatar billede joern Nybegynder
25. august 2002 - 14:09 #5
sorenstrom>>
Oswald bør have pointene, du må ikke anvende tusind-punktum (eller millioner for den sags skyld) på en computer.
Når din PC står til 'dansk' under kontrolpanel/ International / tal, skulle man tro det var ok, men i VB er det ikke.  Ellers skal du selv definere en ny klasse, det bliver lidt langhåret.

Undlad at skrive tusind-punktum fra begyndelsen.  Insisterer du kan fjerne dem ved streng-behandling:

var1 = 4.400,25

var2 = left(var1,(instr(var1,".")-1) & mid(var1,(instr(var1,".")+1)

bagefter skal du på tilsvarende måde ændre , til . som dec.-adskiller og til sidst tage værdien af streng-varialblen med val(var3)

Stort postyr for meget lidt.

M.v.h.  Jørn
Avatar billede joern Nybegynder
25. august 2002 - 14:09 #6
var1 = text1.text naturligvis

m.v.h. Jørn
Avatar billede sorenstrom Nybegynder
25. august 2002 - 14:18 #7
Jeg prøver igen.
Det har intet med Regional Settings at gøre.
Jeg taster uden tusindtalsadskiller som her 4400.
Dernæst formaterer jeg feltet, så der står 4.400,00
Tilsvarende i det andet felt.
I det tredje felt, hvor der skal beregnes, skriver jeg

txtIalt.text = format(Val(txtFragt.text), "##,##0.00") + Format(ValtxtVarepris.text), "##,##0.00")

Resultatet bliver nu kun 5.5 og ikke 5.500,00
Avatar billede kichian Nybegynder
25. august 2002 - 14:29 #8
Fejlen er at du lægger de formaterede tal sammen!! Ikke tallene selv.
Prøv i stedet :
txtIalt.text = format(Val(txtFragt.text) + Val(txtVarepris.text), "##,##0.00")
Avatar billede sorenstrom Nybegynder
25. august 2002 - 17:48 #9
>> kichian
Tak for det. Det var lige det, der manglede
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