[VB6] 1 delen door .. gaat fout

Pagina: 1
Acties:

  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

Topicstarter
Ik heb een simpel rekenmachintje gemaakt in VB6 (jaja), maar er zit een fout in waar ik niet uitkom.

1 delen door 1 t/m 10 gaat goed.
1/11 = 9,09090909090909E-02 (dus fout)
16 gaat echter wel weer goed (0,0625)
17 t/m 19 niet, maar 20 weer wel
21 t/m 24 niet, maar 25 weer wel
26 niet, 27 wel goed
En ga zo maar door.

Het lijkt er dus op dat hij bij een boel getallen de komma niet goed neerzet, want 1/11 moet 0,09090909 zijn.

De 2 getallen heb ik gedimmed als Double
Visual Basic 6:
1
Dim tmpGetal(1 to 2) as Double

Juist


  • lexvis
  • Registratie: Augustus 2002
  • Laatst online: 17-07 03:35
[quote]Jeldert schreef op 31 oktober 2003 @ 17:33:
Ik heb een simpel rekenmachintje gemaakt in VB6 (jaja), maar er zit een fout in waar ik niet uitkom.

1 delen door 1 t/m 10 gaat goed.
1/11 = 9,09090909090909E-02 (dus fout)
...
[quote]

Als je weet dat 9,09...E-02 gelijk is aan 9,09.. * 10^-2 = 0,0909 dan zie je dat alles gewoon goed gaat! Het is gewoon in een andere notatie gezet door VB... pak anders je wiskunde boek er nog eens bij :)

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

9,09090909090909E-02 = 9,0909 * 10^-2 = 0,0909

Klopt wel dus.

lexvis nie zo snel :( :P

[ Voor 19% gewijzigd door kenneth op 31-10-2003 17:39 ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

Topicstarter
Ohh, vondt het al zo vreemd dat het niet wou :P

Maar nu kan ik het opgelost met een simpele format of left() van de uitvoer (dus een maximale lengte meegeven)

Juist