Visualizzazione dei risultati da 1 a 3 su 3

Discussione: MySQL... >= e float

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401

    MySQL... >= e float

    Salve a tutti... sto diventando scemo dietro a un problema con MySQL, e spero vivamente che qualcuno mi possa dare una dritta

    Allora, provate a creare una tabella, chiamiamola con molta fantasia pippo con all'interno un campo FLOAT, chiamato value.

    Ora inserite nella tabella dei valori con decimali, ad es. 1.05, 1.06 e 1.07

    Eseguendo la query:

    SELECT * FROM pippo WHERE value>=1.05

    dovrebbero essere restituiti tutti e 3, invece 1.05 non viene restituito... :master:

    Adesso mettiamo altri valori, ad es. 1.1, 1.2, 1.3

    SELECT * FROM pippo WHERE value>=1.1
    funziona perfettamente

    Ma attenzione! se scrivo value>1.1 mi restituisce comunque anche 1.1

    Vi prego... mi sento stupido! C'e' qualcosa che sbaglio? E' un bug di MySQL (dubito)? O che?

    Grazie
    nICO

    PS: sto usando mysql 4.1.13/php 5 sotto Apache2 (ma l'errore ce l'ho anche se faccio la query da console, quindi non dipende da php o da apache)

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non è un bug di MySQL, è il solito problema della virgola mobile che non è precisa.
    Invece di questo

    SELECT * FROM pippo WHERE value>=1.05

    dovresti usare questo

    SELECT * FROM pippo WHERE value>=1.0499999 (7 decimali)

    Con i campi DOUBLE invece che FLOAT i problemi sono un po' meno

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401

    Grazie!

    Grazie, passando a DOUBLE funziona!


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.