我在數據庫中有一個簡單的版本表。這裏是DDL:SQLite或JDBC奇怪的行爲
CREATE TABLE version (current STRING NOT NULL);
INSERT INTO version (current) VALUES ("1.0");
在這張表中只存儲了一行與當前的數據庫結構版本。在第一次臉紅一切都很好,但這裏有一點奇怪的東西:
//... connect to SQLite and another stuff...
ResultSet resultSet = statement.executeQuery("select current from version;");
if(!resultSet.next())
throw new SQLException("Corrupted version table! Aborting...");
String versionStr = resultSet.getString(1);
System.out.println("Version string: '" + versionStr + "'");
//... close statement, blah-blah-blah
輸出是:'1'。 '.0'錯過了什麼地方?如果當前值爲'0.1','1.3'且小數部分不爲零 - 一切都很好。由於它零 - 「.0」丟失。
所以,問題是:爲什麼會發生,以及如何解決它?
「否則,親和力是NUMERIC。」,yeap。謝謝,我錯過了它。 – Ivan