Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [MySql] Data truncated

  1. #1

    [MySql] Data truncated

    Salve,

    ho un problema nell'aggiornamento di una tabella, campo FLOAT, in quanto ricevo qusto errore:

    Data truncated for column 'credito'

    La cosa strana è che, sempre per aggiornare la stessa tabella, con un'altra pagina, tutto funziona perfettamente, utilizzando sempre lo stesso codice.

    Il campo FLOAT è corretto, 5,3 e, verificando con Response.Write() il aato che riceve la pagina che dovrebbe eseguire l'Update, il dato è corretto.

    Ho fatto anche il:
    codice:
    NuovoCedito=Replace(NuovoCredito, ",", ".")
    
    Session("NewCredito") = NuovoCredito
    utilizzando una session per passare il dato alla pagina successiva, e arriva regolarmente, solo che poi mi restituisce l'errore

    Qualche suggerimento, please. Grazie

    Buona giornata a tutti
    BigDaniel

  2. #2
    Nessuno mi sa dare un suggerimento ?
    BigDaniel

  3. #3
    i numeri vanno scritti col . separatore dei decimali, non col la ,

  4. #4
    Quindi devo eliminare ?

    codice:
    NuovoCedito=Replace(NuovoCredito, ",", ".")
    BigDaniel

  5. #5

  6. #6
    Fatto, ma continua a dare lo stesso errore
    BigDaniel

  7. #7
    Risolto.

    Non so come

    In effetti, ho duplicato un'altra pagina che faceva più o meno la stessa cosa, semplicemente eliminando alcuni calcoli che non servivano, e ora funziona
    BigDaniel

  8. #8
    I calcoli causavano una perdita di precisione. Se prima il numero era 3.55, dopo i calcoli poteva diventare qualcosa come 3.54967898674567630881011854. Questo numero è molto "preciso", e non può essere immagazzinato in una colonna FLOAT (che non è abbastanza capiente) ma deve essere immagazzinato in una tabella DOUBLE (precisione doppia).

    Questo è il problema. Ora eliminando quei calcoli potresti aver risolto parzialmente, ma se vuoi essere sicuro che 3.55 non diventi 3.54, devi usare DECIMAL invece di FLOAT. Se invece non te ne frega niente, la soluzione è arrotondare il numero al secondo decimale con ROUND().
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

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.