Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: float in mysql

  1. #1

    float in mysql

    vi risulta che il tipo float si trattato in modo diverso in mysql 4.1 rispetto alle versioni precedenti?

    Nelle versioni precedenti (fino alla 4.0):
    float(4,2)
    indicava 4 interi e due decimali

    Ora mi risulta che
    float (4,2)
    vada interpretato diversamente:
    - 4 è la lunghezza dell'intero numero
    - 2 sono i decimali

    Il manuale sembra dire proprio questo:
    http://dev.mysql.com/doc/mysql/en/Nu..._overview.html

    FLOAT[(M,D)] (...)
    M is the display width and D is the number of decimals
    Tant'è che ad esempio:
    1000,55 nella 4.0
    lo converte in 99.99 nella 4.1

    Voi ne sapete qualcosa?

  2. #2
    Mi pare che anche nella versione 4.0 fosse gia' cosi'....

    http://dev.mysql.com/doc/mysql/en/Nu..._overview.html


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    sì l'ho visto.
    Ma di fatto la versione 4.0 mi funzionava come la 3.23.

    La 4.1 non lo fa.

    Non è che c'è qualcosa da settare nel my.conf per prediligere un'interpretazione o l'altra?

  4. #4
    Originariamente inviato da saintex
    sì l'ho visto.
    Ma di fatto la versione 4.0 mi funzionava come la 3.23.

    La 4.1 non lo fa.

    Non è che c'è qualcosa da settare nel my.conf per prediligere un'interpretazione o l'altra?
    Ho notato che prima hai messo
    Tant'è che ad esempio:
    1000,55 nella 4.0
    lo converte in 99.99 nella 4.1
    Se non si tratta di un lapsus, 1000,55 con la virgola era una stringa.

    Comunque sono certo che anche in 4.0 il significato era lo stesso della 4.1. Ne ho alcuni esempi nelle mie tabelle.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    sì si trattava di un lapis.

    Invece sul comportamento anomalo 4.0 - 4.1 ho qualche dubbio:
    nel senso che a seguito di un passaggio da 4.0 a 4.1 ho visto i dati arrotondarsi a 99.99 in seguito alle query.

    Insomma sulla 4.0

    1000.55 come float(4,2) rimaneva 1000.55

    sulla 4.1 bastava fare un'update o un insert (non una select) e me l'arrotondava a 99.99

    Per questo mi chiedo se non ci sia qualche opzione

  6. #6
    ho installato la 4.1.7 da qualche giorno in prova. Dalla 4.0.15 alla 4.1.17 non ho avuto problemi.

    Prova a fare un dump dalla 4.0 e un restore in 4.1, di solito se c'e' qualche variazione basica questa viene implementata, mentre con copia da 4.0 incolla in 4.1 no.

    Le tabelle che ho passato per le prove le ho fatte con questa procedura ed il comportamento e' identico. Le tue tabelle arrivavano forse dalla rel 3 di mysql?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712
    Ho lo stesso problema passando i dati dalla 4.1 alla 5.04....
    I valori sopra il 100 me li mette come 99.99, se poi da phpMyadmin inserisco un valore me lo mette come 99.99, il campo è "Float 4,2 unsigned"
    Qualcuno sa aiutarmi?
    Ubuntu 10.10 x86_64

  8. #8
    si apron le tombe....

    son passati due anni. potevi aprirne uno tuo di thread.

    comunque mi pare corretto quello che ti succede.

    float 4,2 significa 4 digit di cui 2 decimali. E non 4 unita' + 2 decimali

    99.99 sono 4.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712
    E come posso fare?
    Ubuntu 10.10 x86_64

  10. #10
    Originariamente inviato da maxtn
    E come posso fare?
    float(6,2)

    ma anche decimal(6,2)

    cosi' ti farebbe vedere 6 digit... cioe' max 9999.99. Se ne vuoi di piu' aumenta il valore 6

    alter table oppure usa phpmyadmin che fai prima.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.