MySQL數(shù)據(jù)庫中的float類型只有一種,它對(duì)應(yīng)Java的float類型。float類型在Java中是一種單精度浮點(diǎn)數(shù),占用4個(gè)字節(jié)。
float a = 3.14f;
由于float是一種浮點(diǎn)數(shù)類型,所以在使用時(shí)需要注意精度的問題。在進(jìn)行浮點(diǎn)數(shù)比較時(shí),應(yīng)該使用浮點(diǎn)數(shù)的誤差范圍,而不是直接比較大小。
float a = 0.1f + 0.2f; float b = 0.3f; if (Math.abs(a - b)< 0.00001) { System.out.println("a equals b"); } else { System.out.println("a does not equal b"); }
在處理數(shù)據(jù)庫中的float類型時(shí),也需要注意精度的問題。MySQL中的float類型默認(rèn)精度為單精度浮點(diǎn)數(shù)范圍內(nèi)的7位數(shù)字。如果需要更高的精度,應(yīng)該使用double類型,但是應(yīng)該注意double類型的精度也有限制。
ResultSet rs = stmt.executeQuery("SELECT * FROM table1"); while (rs.next()) { float f = rs.getFloat("column1"); System.out.println(f); }
在從數(shù)據(jù)庫中讀取float類型數(shù)據(jù)時(shí),應(yīng)該使用ResultSet的getFloat()方法,否則會(huì)拋出“類型不匹配”異常。