• ベストアンサー

SQLiteのREAL型について

SQLiteのREAL型についてC#プログラミングでfloat型として扱う場合に、 Insert文でREAL型に「9999999.999999」と値を入れた場合に Select文で値を取得すると、「1E+07」で返ってきました。 「9999999.999999」という値で取得する方法がわからないためご教授いただきたいです。 申し訳ございませんが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

http://msdn.microsoft.com/ja-jp/library/b1e65aza.aspx > 有効桁数: 7 桁 です。 9999999.999999 を入れようとしたら、途中で打ち切って概数にする必要があります。 9999999.999999 を有効数字7桁にするには、 9999999 で .999999 を四捨五入するとかする必要があります。 四捨五入すれば 10000000 です。 これは 1.0 * 10の7乗 であり、これを「指数表現」という方式で表現したのが 「1E+07」 です。 対策ですが ・C#でfloatを使うのなら、あきらめるしかありません。 ・doubleを使うと、SQLiteのREALと同じ精度になります。

Dmix
質問者

お礼

わかりやすいご説明ありがとうございました。 すごく参考になりました。

その他の回答 (1)

noname#212058
noname#212058
回答No.1

情報が不足しすぎいます。 ・C#で使っているSQLiteのドライバは何ですか? System.Data.SQlite.dll ? ・INSERTはC#コードで実行していますか? ・SELECTはC#コードで実行していますか?  また、そのコードはどのようなモノでしょうか?  ↑C#でSELECTしているのであれば、ここの記述を   間違えている可能性が高いでしょう ・コマンドラインなど別の方法で SELECTした場合の  結果はどうなっていますか?

関連するQ&A