こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLiteのREAL型について

SQLiteのREAL型についてC#プログラミングでfloat型として扱う場合に、
Insert文でREAL型に「9999999.999999」と値を入れた場合に
Select文で値を取得すると、「1E+07」で返ってきました。

「9999999.999999」という値で取得する方法がわからないためご教授いただきたいです。

申し訳ございませんが、よろしくお願いします。

投稿日時 - 2014-12-14 09:50:31

QNo.8857782

困ってます

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

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と同じ精度になります。

投稿日時 - 2014-12-14 21:43:02

お礼

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

投稿日時 - 2014-12-18 00:18:29

ANo.2

このQ&Aは役に立ちましたか?

13人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

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

投稿日時 - 2014-12-14 12:23:08

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-