- - PR -
ADO.NETでの数値データの扱い
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-02-05 09:54
お使いのデータベースは何ですか?
私はデータベースに関しての知識はあまりないので調べてみたところ、SQLServerもOracleもAccessも列の型にdoubleというのはなさそうですが・・・ |
|
投稿日時: 2004-02-05 13:10
半端な発言をして申し訳有りません。
本日データテーブルの二種類のフィールド型 float、decimal(doubleは有りません) について三種類のfloat、decimal、doubleのキャストを行ってみましところ 下記のようになりました。(データベースはSqlServer です) テーブルの フィールド キャスト キャスト キャスト float × float × decimal ○ double decimal × float ○ decimal × double 上記の○がOkでした。 結論は上記の○の組み合わせを使えばよいと言うことのようです。 お騒がせいたしました。 |
|
投稿日時: 2004-02-05 14:22
.NETで構造体(値型)を扱う時にはボックス化(ボクシング)というものを意識しなければなりません。
dr["pub_id"]やdr["pub_no"]として取得した値はObject型として受け取っているわけですからボックス化された状態なわけです。 decimalをボックス化したオブジェクトを、doubleとしてアンボックス化することはできませんし、その逆もしかりです。 それどころかfloatをボックス化したものをdoubleとしてアンボックス化することもできません。(doubleの方が精度が高いにも関わらず、です) つまりSQLServerのfloatはdoubleの精度ということでしょうね。 |