+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

Conversione Single - Double

  1. #1
    Badthing non è in linea Scolaretto
    Salve a tutti,

    nel semplice gestionale che ho realizzato per l'azienda di famiglia ho commesso un enorme errore di valutazione impostando sia nel codice VB che nei campi del DB access i valori decimali con precisione singola.

    Soltanto ora mi sono accorto che memorizzando un numero del tipo 123456.13 otterrò invece 123456.1.

    Ora è mia intenzione cambiare la dichiarazione delle variabili da single a double sia nel codice che nel DB.

    Secondo voi è una cosa fattibile oppure andrò in contro ad altri problemi?
    Inoltre è normale che un valore precedentemente memorizzato nel DB come single del tipo 46,02 dopo aver cambiato il campo a double (impostando 2 posizioni decimali) diventi sempre nel DB 46,0200004577637??

    Grazie a tutti per l'attenzione

  2. #2
    Sicuramente puoi cambiare il tipo di dato.

    Esistono sempre problemi di approssimazione con i valori in virgola mobile ... il 46,0200004577637 non e' strano e il DB non c'entra ...

    Ma non dovresti avere problemi se consideri solamente i primi due decimali ..
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    Badthing non è in linea Scolaretto
    Quote Originariamente inviato da AntonioGiuliana Visualizza il messaggio
    Sicuramente puoi cambiare il tipo di dato.

    Esistono sempre problemi di approssimazione con i valori in virgola mobile ... il 46,0200004577637 non e' strano e il DB non c'entra ...

    Ma non dovresti avere problemi se consideri solamente i primi due decimali ..
    Grazie per l'aiuto,
    in effetti come valore dovrebbe essere giusto il problema è la visualizzazione ossia quando il gestionale legge i dati dal DB nelle griglie vengono fuori tutti quei numeroni.

    Stavo quindi pensado di fare una piccola applicazione per updatare tutti i valori con 2 cifre decimali. Pensi poss funzionare?

    Solo mi sembra strano il fatto che nonostante abbia impostato 2 cifre decimali per i valori double ottengo quei numeri......

  4. #4
    Il numero di cifre decimali impostate nel DB non e' relativo al formato interno del valore, che rimane double con tutte le cifre decimali.

    Il valore che visualizzi nelle griglie dovrebbe essere formattato ... quali griglie usi e come le riempi?
    ℹ️ Leggi di più su AntonioG ...

  5. #5
    Badthing non è in linea Scolaretto
    Quote Originariamente inviato da AntonioGiuliana Visualizza il messaggio
    Il numero di cifre decimali impostate nel DB non e' relativo al formato interno del valore, che rimane double con tutte le cifre decimali.

    Il valore che visualizzi nelle griglie dovrebbe essere formattato ... quali griglie usi e come le riempi?
    Grazie per il supporto!

    Uso Microsoft DataGrid Control. Per popolarla creo un recordset da una query di selezione ed imposto il datasource della griglia al recordset:

    Set rs = New ADODB.Recordset
    With rs
        .ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DBGestionale.mdb" & ";Persist Security Info=False"
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .Source =  "SELECT * FROM Articoli WHERE Cliente = 'nomecliente'"
    End With
    rs.Open , , , adLockOptimistic, adCmdText
    Set dbgArticoli.DataSource = rs
    

  6. #6
    L'avatar di chico_
    chico_ non è in linea Topo di biblioteca Ultimo blog: Attacco a Oscommerce
    Puoi formattare i valori direttamente nell'istruzione sql.
    Esempio:
    Select  articolo, format(prezzo,'0.00') as Prezzo from NomeTabella
    
    Ciauz

    Chico
    ℹ️ Leggi di più su chico_ ...

  7. #7
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Come indicato chiaramente sulla guida di VB6, si deve utilizzare la proprietà NumberFormat del oggetto Column del DataGrid.


    Esempio:

     
    DataGrid1.Columns(0).NumberFormat = "#,##0.00"  
    
    DataGrid1.Columns(1).NumberFormat = "long date"
    Ovviamente, se imposti le colonne a design time, puoi anche impostare la proprietà NumberFormat.

    Ciao
    ℹ️ Leggi di più su gibra ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 4
    Ultimo Post: 27-02-2012, 10:08
  2. Single Thread Apartment (STA)
    Da amanu86 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 13-12-2011, 09:35
  3. Strano comportamento numeri Single
    Da Gandalfrank nel forum Visual Basic .Net
    Risposte: 10
    Ultimo Post: 10-02-2009, 17:00
  4. [VB6] Problemi di conversione da single a double
    Da spikexx84 nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 16-10-2008, 17:22
  5. variabile single
    Da Diabolik nel forum Visual Basic 6
    Risposte: 10
    Ultimo Post: 16-12-2005, 23:39