Condividi:        

vb6 non riconosce numeri con stesso valore

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

vb6 non riconosce numeri con stesso valore

Postdi piter123 » 30/12/10 10:36

salve, posto semplice codice nel quale però non riesco a capire per quale motivo non funzioni.

la variabile prova non assume valore true nonostante N_DEC(2) e P_P_P(2) abbiano lo stesso valore di 0,3, perchè ?
Codice: Seleziona tutto
Option Explicit
   
Private Sub Form_Load()
    Dim NUMDATO As Double
    Dim X, K As Integer
    Dim PASSO_PERC As Double
    Dim PROB(1 To 4) As Double
    Dim N_DEC(1 To 4) As Double
    Dim P_P_P(1 To 4) As Double
    Dim PROVA As Boolean
       
    PROB(1) = 0.40161959
    PROB(2) = 0.310344304
    PROB(3) = 0.236029641
    PROB(4) = 0.068314809

    PASSO_PERC = 0.1

    N_DEC(2) = num1dec(PROB(2))
    P_P_P(2) = PASSO_PERC * 3

    If N_DEC(2) = P_P_P(2) Then
        PROVA = True
    End If

End Sub

Function num1dec(NUMDATO) As Double
    Dim A As Double
    Dim n As String
    If NUMDATO < 1 Then
            If NUMDATO < 0.1 Then
                    num1dec = "0"
                Else
                    n = Replace(Str(NUMDATO), " ", "")
                    n = "0" & n
                    A = InStr(1, NUMDATO, ",")
                    num1dec = Val(Replace(Left$(n, A + 1), ",", "."))
            End If
        Else
            n = Replace(Str(NUMDATO), " ", "")
            A = InStr(1, NUMDATO, ",")
            num1dec = Val(Replace(Left$(n, A + 1), ",", "."))
    End If
End Function
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Sponsor
 

Re: vb6 non riconosce numeri con stesso valore

Postdi nerolubo85 » 30/12/10 12:25

ciao, io farei così:

Codice: Seleziona tutto
Option Explicit

Private Sub Form_Load()
Dim NUMDATO As Double
Dim X, K As Integer
Dim PASSO_PERC As Double
Dim PROB(1 To 4) As Double
Dim N_DEC(1 To 4) As Double
Dim P_P_P(1 To 4) As Double
Dim PROVA As Boolean

PROB(1) = 0.40161959
PROB(2) = 0.310344304
PROB(3) = 0.236029641
PROB(4) = 0.068314809

PASSO_PERC = 0.1


N_DEC(2) = Round(PROB(2), 1)
P_P_P(2) = Round(PASSO_PERC * 3, 1)

If N_DEC(2) = P_P_P(2) Then
PROVA = True
End If


End Sub
nerolubo85
Utente Senior
 
Post: 124
Iscritto il: 04/12/05 11:33

Re: vb6 non riconosce numeri con stesso valore

Postdi zello » 30/12/10 16:01

Penso che sia perché 0,3 è un binario periodico (è 0.0100110 periodico, se non ho sbagliato), e quindi la sua rappresentazione non è completa, ma arrotondata.
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44


Torna a Programmazione


Topic correlati a "vb6 non riconosce numeri con stesso valore":

BTp Valore
Autore: MarioLombardi
Forum: Forum off-topic
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti