Toon posts:

[VB] Twee decimale cijfers rekenen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ben bezig met een berekening in access, hiervoor moet ik rekenen met decimalen.

Het probleem is dat ik graag met een getal wil rekenen wat altijd twee decimalen heeft.
Als ik bijvoorbeeld een factuur bedrag van 56,00 euro heb, rekent VB met 56 verder.

Dit komt erg slecht uit met bewerkingen die ik erop uit wil voeren. Weet iemand hoe ik dit kan forceren?!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Alles met 100 vermenigvuldigen.

En dat is serieus :+


Journalism is printing what someone else does not want printed; everything else is public relations.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Een integer is niet gelijk aan een double. Ik gok dat vb er iets te graag een int van wil maken, terwijl een float / double beter geschikt is.

Methodiek van met 100 vermenigvuldigen kan ook, mits je niet te grote getallen hebt. :P

[ Voor 29% gewijzigd door gorgi_19 op 28-09-2003 16:35 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

kan je niet gewoon met 56 rekenen en dan in het veld waarin je dit laat zien (op het formulier of rapport) het veld de eigenschap geven om 2 decimalen te laten zien?

Verwijderd

Topicstarter
nee, ik wil namelijk een accept giro berdukken, en moet daarvoor de waarden splitsen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 28 September 2003 @ 16:40:
nee, ik wil namelijk een accept giro berdukken, en moet daarvoor de waarden splitsen.
Optie 1:
Vermenigvuldig het met 100. Deel het vervolgens door 100; de modulus van dit getal is het restgetal na de komma.

Optie 2:
Je werkt al met decimalen. Trek van het getal het naar beneden afgeronden getal af. Het verschil is de centen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • flexje
  • Registratie: September 2001
  • Laatst online: 23:37

flexje

got-father

Gebruik Currency? of zei ik nou iets stoms? :P

"Try not to become a man of success but rather to become a man of value..."


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

flexje schreef op 28 September 2003 @ 18:45:
Gebruik Currency? of zei ik nou iets stoms? :P
Misschien.. :P

Hij had het over waarden splitsen.. :P En daar gaat op zich een currency niet bij helpen.. Maar de TS blijft een beetje vaag. :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Probeer de functie CDbl() eens

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 15-08 11:47

Sponge

Serious Game Developer

Verwijderd schreef op 28 September 2003 @ 16:20:
Ben bezig met een berekening in access, hiervoor moet ik rekenen met decimalen.

Het probleem is dat ik graag met een getal wil rekenen wat altijd twee decimalen heeft.
Als ik bijvoorbeeld een factuur bedrag van 56,00 euro heb, rekent VB met 56 verder.

Dit komt erg slecht uit met bewerkingen die ik erop uit wil voeren. Weet iemand hoe ik dit kan forceren?!
Dim X as single

X = WaardeDB
Debug.print X

Moet gewoon werken? :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Waarom zou je tijdens de berekeningen al rekening gaan houden met de manier van afdrukken?? Hoe iets moet worden afgedrukt is iets dat moet worden geregeld bij het afdrukken. Daarnaast worden berekeningen onbetrouwbaar waneer ze tussentijds telkens worden afgerond.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
VB heeft ook een Decimal variant subtype. Deze is speciaal bedoeld voor dit soort dingen.

Dus
Visual Basic:
1
2
Dim X as Variant
X = CDec( 100.1 )


Deze werkt intern ook met een schalingsfactor, zoals hierboven al een aantal keer werd aangegeven.

[ Voor 25% gewijzigd door farlane op 29-09-2003 09:13 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Licht even toe wat de situatie is. ben je bijvoorbeeld aan het rekenen in een Query of VB code in access die bijvoorbeeld de data uit een tabel/query haalt?
Stukje code?
Pagina: 1