getal vergelijken

Status
Niet open voor verdere reacties.

beest820

Gebruiker
Lid geworden
22 aug 2009
Berichten
52
hoi :)

in onderstaande code wil ik de getallen die in de case staan vergelijken met een ander getal "lbluitkomst.text" als lbluitkomst een waarde heeft die niet in de case staat.

De waarde uit de case die dan het dichtst bij lbluitkomst ligt wil ik in lblstandaard hebben.

iemand een idee hoe dit kan ??

bv :
lbluitkomst.text = 0.20
case = 0.15, 0.22
lblstandaard.text = 0.22


Code:
 If RadioButton2.Checked = True Then
            Dim i As Single
            i = lblmem.Text
            Select Case i
                Case 0.1, 0.15, 0.22, 0.33, 0.47, 0.68, 1, 1.5, 3.3, 2.2, nog veel meer..

                    lblserie.Text = ("")
                    RadioButton2.Checked = True
                Case Else
                  ?? lblstandaard.text = lbluitkomst.text - of + case.value ??
                    lblserie.Text = ("")
            End Select
        End If
 
Als ik 2 invoer, krijg ik 2.2 terug, die er het dichtste bij zit:

8N0Kk.png


En zo ook bij 0, zie hier:

zenTo.png


Geef ik een getal op die al in de lijst staat, krijg ik een berichtje dat hij al bestaat:

riAtP.png



Hier de code, het is een Console Applicatie :)

PHP:
    Sub Main()
        Dim Lijst As New List(Of Single)
        Lijst.AddRange(New Single() {0.1, 0.15, 0.22, 0.33, 0.47, 0.68, 1, 1.5, 3.3, 2.2})

        Dim Num As Single = 0.47
        If Lijst.Contains(Num) Then
            Console.WriteLine("Getal bestaat!")
        Else
            Lijst.Add(Num)
            Lijst.Sort()
            Dim CaptainBri() As Single = Lijst.ToArray()
            Dim Index As Integer = Lijst.IndexOf(Num)
            If Index <> CaptainBri.Length - 1 Then
                If CaptainBri(Index + 1) > CaptainBri(Index) Then Console.WriteLine("Getal is: " + CStr(CaptainBri(Index + 1)))
            Else : Console.WriteLine("Getal is: " + CStr(CaptainBri(Index - 1)))
            End If
        End If

        Console.Read()
    End Sub

Als je bepaalde dingen niet snapt, laat het weten.

Succes! :)
 
thnx CaptainBri.. :thumb:

ben nu al een heel stuk verder met de code.. heb wel aleen wat veranderd om het in een event te zetten :)
er is aleen een ding wat nog niet wil werken.. waneer er een hoger of lager getal uit de lijst gekozen moet worden wordt altijd het hogere getal gekozen..
zit er nog een fout in de else beslissing??



Code:
If RadioButton1.Checked = True Then
            Dim lijst As New List(Of Single)
            lijst.AddRange(New Single() _
                        {0.1, 0.22, 0.47, 1, 2.2, 4.7, 10, 22, 47, 100, 220, 470, 1000, 2200, 4700, _
                        10000, 22000, 47000, 100000, 220000, 470000, 1000000, 2200000, 4700000, 10000000})
            Dim i As Single = lblmem.Text
            If lijst.Contains(lblmem.Text) Then
                lblserie.Text = ("getal bestaat")
                lblstandaard.Visible = False
                RadioButton1.Checked = True
            Else
                lblstandaard.Visible = True
                lijst.Add(lblmem.Text)
                lijst.Sort()
                Dim value() As Single = lijst.ToArray()
                Dim Index As Integer = lijst.IndexOf(lblmem.Text)
                If Index <> value.Length - 1 Then
                    If value(Index + 1) > value(Index) Then lblstandaard.Text = ("standaard" + CStr(value(Index + 1)))

                Else : lblstandaard.Text = ("standaard" + CStr(value(Index - 1))) '  <-- doet niets

                End If
            End If
        End If
 
Probeer deze code eens:

PHP:
If RadioButton1.Checked = True Then
            Dim lijst As New List(Of Single)
            lijst.AddRange(New Single() _
                        {0.1, 0.22, 0.47, 1, 2.2, 4.7, 10, 22, 47, 100, 220, 470, 1000, 2200, 4700, _
                        10000, 22000, 47000, 100000, 220000, 470000, 1000000, 2200000, 4700000, 10000000})
            Dim i As Single = lblmem.Text
            If lijst.Contains(lblmem.Text) Then
                lblserie.Text = ("getal bestaat")
                lblstandaard.Visible = False
                RadioButton1.Checked = True
            Else
                lblstandaard.Visible = True
                lijst.Add(lblmem.Text)
                lijst.Sort()
                Dim value() As Single = lijst.ToArray()
                Dim Index As Integer = lijst.IndexOf(lblmem.Text)
                If Index <> value.Length - 1 Then
                    If value(Index + 1) > value(Index) Then
 lblstandaard.Text = ("standaard" + CStr(value(Index + 1)))
Else : lblstandaard.Text = ("standaard" + CStr(value(Index - 1))) 
End If
                Else : lblstandaard.Text = ("standaard" + CStr(value(Index - 1))) '  <-- doet niets
                End If
            End If
        End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan