Toon posts:

[VBA/ACCESS] Afkappen van getallen met decimalen

Pagina: 1
Acties:
  • 784 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben redelijk nieuw met vba en heb voor mijn stage een opdracht gekregen:
als je de getallen 83,45 en 81,30 hebt.
dan moet 83,45 ---> 84,95 worden
en 81,30 moet 79,95 worden.
het gaat dus om de 3,45 die 4,95 word en 1,30 die 9,95 word
dus om nog een paar voorbeelden te geven:
11,56 ----> 9,95
12,88 ----> 14,95
17,40 ----> 14,95
17,99 ----> 19,95
ik hoop dat iemand mij kan helpen met dit probleem,
ik wil dus iets hebben om de laatste 3 cijfer (4 tekens incl ,) kan afpakken.
wie kan mij helpen ?

Verwijderd

Dit kun je doen met het commando Right(String,CharLeng) of Left(String,CharLeng).

Bijvoorbeeld zo:

OldVar = 83,45
LeftVar = Left(OldVar,1)
RightVar = Right(OldVar,4)


LeftVar is dan "8"
RightVar is dan "3,45"

[ Voor 7% gewijzigd door Verwijderd op 15-03-2006 17:02 ]


Verwijderd

Topicstarter
Okee hij werkt, super bedankt

  • A_L
  • Registratie: Juni 2001
  • Niet online

A_L

Je kunt ook de rest van een deling door 10 nemen.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Om getallen af te ronden via string manipulatie is imho een beetje krom. Afronden op vijf-vouden kan via iets als 5*round(i/5), of als je de afrondingsgrens d zelf wilt bepalen: 5*(int((i+d)/5). En dan nog 0,05 aftrekken. Heb je bedragen onder de 2,50 dan moet je nog iets toevoegen om te voorkomen dat die voor -0,05 € geprijst worden met een if'je of 5 * (Round(i / 5) - (i <= 2.5))

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Niesje schreef op donderdag 16 maart 2006 @ 01:19:
Om getallen af te ronden via string manipulatie is imho een beetje krom.
Dat klopt op zich wel, alleen wilde hij (volgens mij) niet afronden, maar een deel van het getal aanpassen. Gezien de melding "Inclusief ," vermoedde ik dat het toch om een string ging, ook omdat je anders gewoon 1,50 (83,45 ---> 84,95) bij het getal kon optellen, nietwaar?? vandaar....

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Inderdaad niet waar :+ Want 14,95 - 12,88 is geen 1,50.

De manier van Niesje is ook wat mij betreft de juiste manier van werken. Het omzetten naar een string is te bewerkelijk en foutgevoelig. Hier is trouwens dan ook niet per se VBA bij nodig volgens mij.

edit:
Al kan het natuurlijk wel prima en je antwoord is terecht en precies wat de topicstarter vroeg. Het zou alleen niet mijn keuze zijn het zo op te lossen :)

[ Voor 25% gewijzigd door F_J_K op 17-03-2006 17:08 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

offtopic:
Mijn reactie sloeg idd op de topicstart en niet op de reactie van DK :p

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1