初めて自分の家と他人の家が違う、と意識した時

アクセスのデータ型。「数値型」ですが、「フィールドサイズ」に

(1)バイト型(0~255の範囲。小数点以下の数値は扱えない)
(2)整数型(-32,768~32,767の範囲。小数点以下は扱えない)
(3)長整数型(-2,147,483,648~2,147,483,647の範囲。小数点以下は扱えない)
(4)単精度浮動小数点型(-3.402823×10^38~3.402823×10^38の範囲。
            小数点以下の数値が扱える)
(5)倍精度浮動小数点型(-1.79769313486231×10^308~-1.79769313486231×
           10^308の範囲。少数点以下の数値が扱える)
(6)十進型(-10^28-1~10^28-1の範囲。小数点以下の数値が扱える)

と6種類決められますが、それぞれの「選び方の違い」と「その理由」を
教えてください。

たとえば、(1)~(3)くらいなら分かります。
扱える数値の桁数が違うということですよね?で、(1)~(3)を選ぶ時と(4)~(6)を
選ぶときで大きな違いというと、「小数点以下の数値が扱えるかどうか」
ですよね?そういう認識であっているか・・・ということと、上記の(1)~(6)を
「選び分ける必要がある場合」というのを教えてください。

なぜ、このような6種類に分かれているのか、人に説明しないとなりません。

よろしくお願い致します。m(_ _)m

A 回答 (2件)

整数型と浮動小数点型の大きな違いは、少数点以下の数字を扱えるかどうかで合っていると思います。


補足すると、浮動小数点型の方が整数型より大きい数字が扱えます。
長整数型なら21億くらいまでしか扱えませんが、浮動小数点型なら、兆、京・・・と非常に大きい数字が扱えるようになります。
有効数字として、どのくらいのケタを保持できるかが、精度になります。
倍精度は単精度の倍の精度です(当たり前ですが)

コンピュータが2進数で数字を表現していることはご存知のことだと思いますが、2進数で少数を表す場合、必ずしも10進数の少数と一対一に対応するわけではありません。2進数を10進数に直すのはnビットめの数字(0,1)*2のn乗の和ですが、少数の場合は-n乗になります。つまり1/2+1/4+1/8っていうような感じになります。0.75だったら、1/2+1/4で表現できますが、0.3とかになると1/4+1/32+・・・という感じできっちり表現しきれないので、0.299・・・という近似値になります。

それで問題があるようでしたら、十進型を使えば?ってことだと思います。
    • good
    • 1
この回答へのお礼

なぁ~~~るほどっ!!!!です!!!!
とっても「ナットク」です。

ありがとうございました!!!

お礼日時:2002/07/11 14:05

>なぜ、このような6種類に分かれているのか


扱うデータに応じてデータ型を使い分けることによって無駄なく効率的に処理できるためです。
コンピュータは2進数でしかも有限の桁数(多くは8ビットの倍数)で数を表現・処理します。
桁数が少ないほど処理も早く記憶領域も節約できて経済的です。

アクセスの数値データ型は、次の1.~2.のようにして決定します。

1.まず、その項目(フィールド)に格納するデータの種類(小数有無)と
 とり得る値の範囲(最大値と最小値)とから使用可能なデータ型を選択します。

2.つぎに、1.で複数のデータ型が使用できる場合、処理が速くかつ記憶領域も節約でる型に絞り込みます。
 だいたい、数値を表現するのにビットが少なくてすむ型になります。

単精度浮動小数点型、倍精度浮動小数点型は誤差を考慮する必要があります。

あと通貨型という小数を扱える型もあります。
ただし、通貨型は内部は8バイトの整数です。
    • good
    • 0
この回答へのお礼

回答ありがとうございました!

なるほど、処理の速度をあげるためにも、データ型を使い分ける必要があるんですね。大量のデータを扱うんですもんね。
とても参考になりました。ありがとうございました!!

お礼日時:2002/07/11 15:26

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A