diff --git a/simplest-sqlite.cabal b/simplest-sqlite.cabal
--- a/simplest-sqlite.cabal
+++ b/simplest-sqlite.cabal
@@ -2,7 +2,7 @@
 cabal-version: >= 1.8
 
 name: simplest-sqlite
-version: 0.0.0.9
+version: 0.0.0.10
 stability: Experimental
 author: YoshikuniJujo <PAF01143@nifty.ne.jp>
 maintainer: YoshikuniJujo <PAF01143@nifty.ne.jp>
@@ -23,7 +23,7 @@
 source-repository this
     type: git
     location: git://github.com/YoshikuniJujo/test_haskell
-    tag: simplest-sqlite-0.0.0.9
+    tag: simplest-sqlite-0.0.0.10
 
 library
     hs-source-dirs: src
diff --git a/src/Database/SmplstSQLite3.hs b/src/Database/SmplstSQLite3.hs
--- a/src/Database/SmplstSQLite3.hs
+++ b/src/Database/SmplstSQLite3.hs
@@ -101,6 +101,8 @@
 
 foreign import ccall unsafe "sqlite3.h sqlite3_column_int"
 	c_sqlite3_column_int :: Ptr Stmt -> CInt -> IO CInt
+foreign import ccall unsafe "sqlite3.h sqlite3_column_double"
+	c_sqlite3_column_double :: Ptr Stmt -> CInt -> IO CDouble
 foreign import ccall unsafe "sqlite3.h sqlite3_column_text"
 	c_sqlite3_column_text :: Ptr Stmt -> CInt -> IO CString
 foreign import ccall unsafe "sqlite3.h sqlite3_column_blob"
@@ -127,6 +129,11 @@
 	column (Stmt sm) i =
 		fromIntegral <$> c_sqlite3_column_int sm (fromIntegral i)
 
+instance SQLiteData Double where
+	bindN = sqlite3BindDouble
+	column (Stmt sm) i =
+		realToFrac <$> c_sqlite3_column_double sm (fromIntegral i)
+
 instance SQLiteDataList Char where
 	bindNList = sqlite3BindString
 	columnList (Stmt sm) i =
@@ -142,10 +149,12 @@
 	column (Stmt sm) i = T.decodeUtf8 <$>
 		(BS.packCString =<< c_sqlite3_column_text sm (fromIntegral i))
 
-foreign import ccall unsafe "sqlite3.h sqlite3_bind_null" c_sqlite3_bind_null ::
-	Ptr Stmt -> CInt -> IO CInt
-foreign import ccall unsafe "sqlite3.h sqlite3_bind_int" c_sqlite3_bind_int ::
-	Ptr Stmt -> CInt -> CInt -> IO CInt
+foreign import ccall unsafe "sqlite3.h sqlite3_bind_null"
+	c_sqlite3_bind_null :: Ptr Stmt -> CInt -> IO CInt
+foreign import ccall unsafe "sqlite3.h sqlite3_bind_int"
+	c_sqlite3_bind_int :: Ptr Stmt -> CInt -> CInt -> IO CInt
+foreign import ccall unsafe "sqlite3.h sqlite3_bind_double"
+	c_sqlite3_bind_double :: Ptr Stmt -> CInt -> CDouble -> IO CInt
 foreign import ccall unsafe "sqlite3.h sqlite3_bind_text" c_sqlite3_bind_text ::
 	Ptr Stmt -> CInt -> CString -> CInt -> Ptr a -> IO CInt
 foreign import ccall unsafe "sqlite3.h sqlite3_bind_blob" c_sqlite3_bind_blob ::
@@ -160,6 +169,12 @@
 	when (ret /= sQLITE_OK) . ioError . userError $
 			"Cannot bind null: error code (" ++ show ret ++ ")"
 
+sqlite3BindDouble :: Stmt -> Int -> Double -> IO ()
+sqlite3BindDouble (Stmt sm) i d = do
+	ret <- c_sqlite3_bind_double sm (fromIntegral i) (realToFrac d)
+	when (ret /= sQLITE_OK) . ioError . userError $
+			"Cannot bind double: error code (" ++ show ret ++ ")"
+
 sqlite3BindInt :: Stmt -> Int -> Int -> IO ()
 sqlite3BindInt (Stmt sm) i n = do
 	ret <- c_sqlite3_bind_int sm (fromIntegral i) (fromIntegral n)
@@ -204,7 +219,7 @@
 	when (ret /= sQLITE_OK) . ioError . userError $
 		"Cannot reset stmt: error code (" ++ show ret ++ ")"
 
-data Type = Integer | Float | Text | Blob | Null deriving Show
+data Type = Integer | Float | Text | Blob | Null deriving (Show, Eq)
 
 foreign import ccall unsafe "sqlite3.h sqlite3_column_type"
 	c_sqlite3_column_type :: Ptr Stmt -> CInt -> IO CInt
