Mysql
 sql >> Database >  >> RDS >> Mysql

Perché MySQL restituisce alcuni float in notazione scientifica, ma non altri?

Sembra esserci un limite di sei cifre su ciò che viene mostrato fuori dalla CLI (e probabilmente altrove). L'esempio che hai è 1.12305e-06 che è 0.00000112305 che verrebbe mostrato come 0.00000, anche se chiaramente non è zero.

Se insisti nell'usare float o double, dovrai forzarli a uscire usando qualcosa come round(columnName,5) per forzare la visualizzazione in un valore decimale. In caso contrario, potresti passare a un tipo di dati decimale.

Da http://dev.mysql.com/ doc/refman/5.0/en/floating point-types.html

Poiché i valori a virgola mobile sono approssimativi e non archiviati come valori esatti, i tentativi di trattarli come esatti nei confronti possono causare problemi. Sono inoltre soggetti a dipendenze dalla piattaforma o dall'implementazione. Per ulteriori informazioni, vedere la Sezione C.5.5.8, “Problemi con valori in virgola mobile

Vedi anche questo thread sui forum mysql su questo esatto problema.