Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    76

    [VB.NET]Leggere i numeri decimali con il punto D:

    Salve a tutti, sto sviluppando un piccolo autopatcher ma sono davanti a un problema.

    Ho due numeri:
    -1.0 (versione client)
    -1.2 (versione server)

    Come faccio a fare un confronto tra questi due numeri?
    Dato che non hanno la virgola, ma il punto è tutto più difficile.

    Ho già provato a fare cosi ma non funge

    codice:
    Dim ClientVersion As Integer = 1.0
    Dim ServerVersion As Integer = 1.2
            If ClientVersion = ServerVersion Then
                MsgBox("NON AGGIORNARE")
            ElseIf ClientVersion < ServerVersion Then
                MsgBox("AGGIORNA")
            End If
    Sapreste aiutarmi?

    Saluti.

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Perchè non funziona? È una soluzione insolita, ma a prima vista sembrerebbe funzionare.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    76
    Non funziona D:

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Antuzzo
    Non funziona D:
    non spieghi abbastanza

    codice:
    Dim ClientVersion As Double = 1.0
    Dim ServerVersion As Double = 1.2
    If ClientVersion = ServerVersion Then
    	Console.WriteLine("NON AGGIORNARE")
    ElseIf ClientVersion < ServerVersion Then
    	Console.WriteLine("AGGIORNA")
    End If
    questo codice funziona, ma ho messo i numeri in variabili double non integer
    Pietro

  5. #5
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Integer...double, sono queste piccole cose che fregano. Ora funziona, ha ragione Pietro09.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da ShaleN
    Integer...double, sono queste piccole cose che fregano. Ora funziona, ha ragione Pietro09.

    secondo me, chi lavora in basic dovrebbe sempre mettere questa istruzione:

    Option Strict On


    In questo modo non viene nemmeno compilato e visualizza immediatamente l'errore
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    119
    Per la gioia dei programmatori distratti (ex vb6) che non facevano le dichiarazioni delle variabili ora te la cavi anche con:
    Dim myVar1 = 1.2
    Dim myVar2 = 1.0
    (dicharazione implicita di variabili possibile solo dal framework 3)

  8. #8
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Originariamente inviato da pietro09
    secondo me, chi lavora in basic dovrebbe sempre mettere questa istruzione:

    Option Strict On


    In questo modo non viene nemmeno compilato e visualizza immediatamente l'errore
    Grazie, penso proprio che lo farò.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    76
    Originariamente inviato da pietro09
    non spieghi abbastanza

    codice:
    Dim ClientVersion As Double = 1.0
    Dim ServerVersion As Double = 1.2
    If ClientVersion = ServerVersion Then
    	Console.WriteLine("NON AGGIORNARE")
    ElseIf ClientVersion < ServerVersion Then
    	Console.WriteLine("AGGIORNA")
    End If
    questo codice funziona, ma ho messo i numeri in variabili double non integer
    Ty man <3

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    119
    Se NON metti Option Strict On (di default su C#) vb IMPLICITAMENTE CONVERTE un valore decimale in intero.
    Se metti Option Strict On è il compilatore che si accorge del tuo errore e ti chiede di fare un cast esplicito o di cambiare il tuo programma.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.