Dim en Single

Status
Niet open voor verdere reacties.

OuweGrijse

Gebruiker
Lid geworden
11 jan 2007
Berichten
55
Ik dimensioneer twee variabelen As Single
Vervolgens geef ik bv. een waarde van 52,7 en de ander 51,765.
Nu ga ik die van elkaar aftrekken en krijg dan als antwoord 0,9350014

Hoe zit dat en hoe kan ik dat vermijden. Ik wil alleen met 3 cijfers achter de komma werken.

Kan iemand mij dit uitleggen?
 
Je kan de cijfers niet een bepaade dim geven, maar je kan math.round(getal, [aantaldecimalen]) gebruiken om het getal af te ronden

zoiets:
Code:
Dim getal1 as single
dim getal2 as single

getal1 = 51,123456789
getal2 = 48,234567891

dim getalAntwoord as single

Getalantwoord = math.round(getal1 - getal2, 3)
 
Dat begrijp ik, maar als ik 2-1 doe moet het antwoord toch 1 zijn en niet 1,0000014
 
probeer in plaats van Single anders eens Double, mischien helpt dat
 
Bedankt voor je reactie allereerst.
Double, variant geeft hetzelfde probleem.
Ik kan dat inderdaad omzeilen met ROUND ofzo, maar ik vind het zo vreemd.
2-1 is inderdaad 1
Het gaat mis bij de cijfers achter de komma.
Doe ik iets fout of is er iets mis met VB?
Alle manieren waarop ik het probeer op te lossen kosten meer programmatijd.

:(
 
ik heb zelf deze code geprobeert, en het geeft gewoon 1....

Code:
Dim x As Single
Dim y As Single
Dim z As Single

x = 2
y = 1
z = x - y

MsgBox z

welke vb heb je?
 
Probeer eens:

Dim x as single
Dim y as single
Dim z as single

x=52.700
y=51.765
z=x-y
Print z 'autoredraw of form set to true

Ik gebruik Vb6
 
Code:
Dim x As Single
Dim y As Single
Dim z As Single

x = 52.7
y = 51.765
z = Round(x - y, 3)

MsgBox z
 
Wederom bedankt voor de medeleving.

Maar waarom moet ik alles "rounden". Slaat toch nergens op.
Ik moet toch gewoon twee getallen van elkaar af kunnen trekken en het juiste antwoord krijgen?
:mad:
 
Wederom bedankt voor de medeleving.

Maar waarom moet ik alles "rounden". Slaat toch nergens op.
Ik moet toch gewoon twee getallen van elkaar af kunnen trekken en het juiste antwoord krijgen?
:mad:

In dit geval wil je maar drie decimalen achter de komma. Dus een antwoord met drie decimalen achter de komma is in dit geval een 'juist' antwoord. Maar als je meer of minder decimalen achter de komma wilt, is het een 'onjuist' antwoord. De computer weet van te voren niet op wat voor manier hij een 'juist' antwoord kan geven.
 
Je hebt volkomen gelijk.
Ik kan het alleen niet uitstaan als ik iets niet begrijp.
Dat Dim statement is alleen bedoeld om ruimte in het geheugen te reserveren.
Single 7 bytes, akkoord.
Waarom verzint VB dan cijfertjes ver achter de komma, die er helemaal niet zijn?
Natuurlijk kan ik er mee dealen, maar waarom kan ik dezelfde berekeningen wel juist maken met bv de Calculator uit de bureau asseccoires? Zit die ook een beetje bij zichzelf te "rounden"?
Er moet toch iets achter zitten:evil:
 
Je hebt volkomen gelijk.
Ik kan het alleen niet uitstaan als ik iets niet begrijp.
Dat Dim statement is alleen bedoeld om ruimte in het geheugen te reserveren.
Single 7 bytes, akkoord.
Waarom verzint VB dan cijfertjes ver achter de komma, die er helemaal niet zijn?
Natuurlijk kan ik er mee dealen, maar waarom kan ik dezelfde berekeningen wel juist maken met bv de Calculator uit de bureau asseccoires? Zit die ook een beetje bij zichzelf te "rounden"?
Er moet toch iets achter zitten:evil:

Visual Basic heeft wel meer vreemde dingen. (imo dan)

Verder kan ik je zeggen dat VB helemaal niet moeilijk doet hoor. In dit geval voor jou misschien wel. Maar over het algemeen ziet VB te veel door de vingers.
 
Jullie in ieder geval bedankt voor alle interesse:thumb:

Ik heb het sommetje trouwens even binair gemaakt op papier.
Ik kan ook net zo'n eenvoudige *** zijn als een PC en Bill G.
Wat schetst mijn verbazing:eek:
Toen klopte het sommetje wel.I k heb me alleen niet druk gemaakt over die drijvende punten
N.B. Ik deed er wel iets langer over dan de PC.
Voor een programma niet interessant. (Ik dus):p

Toch wilik de vraag nog even open laten staan,want ikke begreipe niet nie.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan