dポイントプレゼントキャンペーン実施中!

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

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

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

A 回答 (2件)

http://msdn.microsoft.com/ja-jp/library/b1e65aza …
> 有効桁数: 7 桁

です。 9999999.999999 を入れようとしたら、途中で打ち切って概数にする必要があります。
9999999.999999 を有効数字7桁にするには、 9999999 で .999999 を四捨五入するとかする必要があります。
四捨五入すれば 10000000 です。
これは 1.0 * 10の7乗 であり、これを「指数表現」という方式で表現したのが 「1E+07」 です。

対策ですが
・C#でfloatを使うのなら、あきらめるしかありません。
・doubleを使うと、SQLiteのREALと同じ精度になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/12/18 00:18

情報が不足しすぎいます。


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す