Hoeveel is 0.7 + 0.1 ?

Status
Niet open voor verdere reacties.

r0g3r

Nieuwe gebruiker
Lid geworden
22 dec 2008
Berichten
3
Hoi allemaal.
Ik kom het volgende probleem tegen in VB.Wie wil mij even helpen?

If 0.7 + 0.1 = 0.8 then
msgbox " True "
End if

Nu zul je denken dat er een bsgbox komt met True maar nee hoor.
Als ik de waardes verander klopt het wel.

If 0.6 + 0.1 = 0.7 then
msgbox " True "
End if

Zie ik iets over het hoofd of is dit een bug van vb?
Groet
Roger
 
Hoi allemaal.
Ik kom het volgende probleem tegen in VB.Wie wil mij even helpen?

If 0.7 + 0.1 = 0.8 then
msgbox " True "
End if

Nu zul je denken dat er een bsgbox komt met True maar nee hoor.
Als ik de waardes verander klopt het wel.

If 0.6 + 0.1 = 0.7 then
msgbox " True "
End if

Zie ik iets over het hoofd of is dit een bug van vb?
Groet
Roger

If 0.7 + 0.1 = 0.8 Then
MsgBox("True")
End If

of

If 0.6 + 0.1 = 0.7 Then
MsgBox.Show("True")
End If
 
Laatst bewerkt:
Het gaat er even niet om wat er tussen If en End if staat.
In het eerste voorbeeld 0.7 + 0.1 = 0.8 komt de regel niet eens tot uitvoer.
Ik heb het geprobeerd in VB6 en VBA Excel en op 2 verschillende pc's
Bedankt Rspike
Iemand anders?
 
Het gaat er even niet om wat er tussen If en End if staat.
In het eerste voorbeeld 0.7 + 0.1 = 0.8 komt de regel niet eens tot uitvoer.
Ik heb het geprobeerd in VB6 en VBA Excel en op 2 verschillende pc's
Bedankt Rspike
Iemand anders?

Je bent niet echt duidelijk wat je probleem inhoud, waar je het in maakt en wat je ermee wil?
 
Klein voorbeeld met Eurocenten.

Dim Bedrag1#
Dim Bedrag2#
Dim MaxBedrag#

Bedrag1 = 0.7
Bedrag2 = 0.1
MaxBedrag = 0.8

If Bedrag1 + Bedrag2 = MaxBedrag Then
msgbox = "Totaal bedrag is: " & MaxBedrag
End If
 
Code:
        Dim a As Double = "0.7"
        Dim b As Double = "0.1"
        Dim c As Double = "0.8"

        If (a + b) = c Then
            MsgBox("True")
        End If
 
Code:
        Dim a As Double = "0.7"
        Dim b As Double = "0.1"
        Dim c As Double = "0.8"

        If (a + b) = c Then
            MsgBox("True")
        End If

Het is volgens mij ook mogelijk om CDbl() te gebruiken.

Code:
if CDbl(0.7 + 0.1) = 0.8 then
  //
end if
 
meneer van dale wacht op antwoord

Het heeft met de volgorde van het uitrekenen van de expressie te maken. Eerst wordt bepaald of 0.1=0.8 is. Daarvoor wordt het getal dat false in Visual Basic gebruikt bepaald. Dat getal wordt bij 0.7 opgeteld. En dat vertegenwoordigt blijkbaar een waarde die false voorstelt. Met
Code:
if (0.1+0.7)=0.8 then
wordt alles in de juiste volgorde bepaald. Net als vroeger op de lagere school met " Meneer van Dale wacht op antwoord" een ezelsbruggetje om te onthouden dat vermenigvuldigen en delen voor optellen en aftrekken gaan, gaat hier de " = " voor de " + ". En dat verander je met haakjes.
 
Het heeft met de volgorde van het uitrekenen van de expressie te maken. Eerst wordt bepaald of 0.1=0.8 is. Daarvoor wordt het getal dat false in Visual Basic gebruikt bepaald. Dat getal wordt bij 0.7 opgeteld. En dat vertegenwoordigt blijkbaar een waarde die false voorstelt. Met
Code:
if (0.1+0.7)=0.8 then
wordt alles in de juiste volgorde bepaald. Net als vroeger op de lagere school met " Meneer van Dale wacht op antwoord" een ezelsbruggetje om te onthouden dat vermenigvuldigen en delen voor optellen en aftrekken gaan, gaat hier de " = " voor de " + ". En dat verander je met haakjes.

De operator '+' heeft een hogere prioriteit dan de operator '=', hetgeen je zegt klopt dus niet helemaal.

Code:
dim d as double = 3.0, dd as double = 3.3

if d + dd = 6.3 then
    msgbox("w00t")
end if
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan