Comparare numeri con virgola datagridview

di il
5 risposte

Comparare numeri con virgola datagridview

Ciao a tutti, con il codice che posto sotto, comparo due caselle numeriche ma con numeri interi
 Dim DGV As DataGridView = DirectCast(sender, DataGridView)
        Select Case e.ColumnIndex
            Case 10
                Dim A As Integer = Int32.Parse(DGV.Rows(e.RowIndex).Cells(10).Value)
                Dim B As Integer = Int32.Parse(DGV.Rows(e.RowIndex).Cells(11).Value)
                If A < B Then
                    e.CellStyle.BackColor = Color.Red
                Else
                    e.CellStyle.BackColor = Color.White
                End If
        End Select
adesso la mia esigenza sarebbe di poter fare la stessa cosa con numeri che hanno una virgola, premetto che userò solo la virgola e non il punto come separatore, questo lo gestisco nel keypress della textbox, mi sapreste aiutare a capire come risolvere? Ho cercato un pò in rete prima di chiedere ma nulla...magari uso parole sbagliate. capisco che scrivendo Integer parliamo di numeri interi... qualcuno c'è già passato? ho cercato anche nel forum ma c'è solo una discussione non conclusa.

Grazie

5 Risposte

  • Re: Comparare numeri con virgola datagridview

    Ho trovato questa funzione su un libro, vediamo se sono sulla strada giusta:

    Math.Round
    La funzione Math.Round arrotonda il numero indicato tra parentesi al numero intero maggiore o al numero intero minore.
    E’ possibile effettuare l’arrotondamento a un numero predefinito di decimali, indicato tra parentesi dopo il numero da arrotondare.
    Dim PrimoNumero As Single = 36.556
    PrimoNumero = Math.Round(PrimoNumero)
    Dim SecondoNumero As Single = 36.556
    SecondoNumero = Math.Round(SecondoNumero, 2)
    Risultato:
    ? la variabile PrimoNumero è uguale a 37,
    ? la variabile SecondoNumero è uguale a 36,56.

    a questo punto se inserisco 2,5 su PrimoNumero andrà a 3 o no?
  • Re: Comparare numeri con virgola datagridview

    Ma invece di usare gli Integer, usare un Single?
    E poi usi Single.Parse
    Anche perché arrotondare è sbagliato. 2,3 e 2,4 sono uno maggiore dell'altro, ma arrotondati diventano 2.
  • Re: Comparare numeri con virgola datagridview

    Tralasciando la programmazione, parlando solo di matematica, tu confronti due valori reali convertendoli prima in interi? Facevi così a scuola?
  • Re: Comparare numeri con virgola datagridview

    Grande oregon.... provo... hai ragione, in effetti non facevo cosi, fortuna che qualcuno ti rinfresca le cose, a volte purtroppo ci si fissa con soluzuoni che poi invece non hanno la logica di base...

    Proverò come suggerito... ti spedisco una birra fresca come risolvo.... non te la offro di persona perchè poi ti bombardo di domande ah ah ah.

    Grazie per ora, poi aggiorno il post se ho risolto.
  • Re: Comparare numeri con virgola datagridview

    Ok risolto, OVVIAMENTE come da voi suggerito.... grazie per la pazienza
    Case 10
                    Dim A As Single = Single.Parse(DGV.Rows(e.RowIndex).Cells(10).Value)
                    Dim B As Single = Single.Parse(DGV.Rows(e.RowIndex).Cells(11).Value)
                    If A < B Then
                        e.CellStyle.BackColor = Color.Red
                    Else
                        e.CellStyle.BackColor = Color.White
                    End If
Devi accedere o registrarti per scrivere nel forum
5 risposte