2012-01-24 6 views
0

私はプログラミングの初心者です。整数型の値にdouble/floatを使用する

私には非常に基本的な質問があります "整数型の値に型変数を二重または浮動できますか?" 私が意味する、例えば

float a = 2; 
double b = 3.2; 

+3

あなたがプログラミングに新しいしている場合 - あなたは 'float'sのpoissible用法な限り避けるべきであるとあなたが[浮動小数点演算](http://en.wikipedia.org/wiki/Floating_point#Floating-point_arithmetic_operations)についての基本を理解するまでは「二重」ですが、これはまったく問題ではありません。 – amit

+0

整数は、CやJavaのように、5の代わりに1/2 * 10 = 0のように混乱させることもできます。浮動小数点は、プログラミングで学ぶ必要があります。 –

+1

私は同意しません。整数セマンティクスを理解するには、オーバーフローのようなすべてのコーナーケースを含めて、たぶん1時間かかります。浮動小数点数を十分に理解しておけば、実際の浮動小数点コード(浮動小数点数を避けるのではなく)を書くだけでも十分理解できるようにするには、数日から数週間の間に悪い間違いがないように(数学的背景によって)私は数ヶ月または数年かかると言います。 –

答えて

4

はいありがとうございます、しかし、あなたは整数を格納するためのフロートを使用した場合の精度の損失があります。

通常、整数は32ビットを使用して数値を格納します。つまり、約20億(約)の範囲の数値を保持できます。

しかし、浮動小数点は32ビットを使用して小数点の前後に両方の部分を格納するため、精度を保存するための十分な領域がありません。浮動小数点数は20億を超える数値を格納できますが、数値が大きいほど精度が上がりますので、浮動小数点数に2134567891のような数値を格納すると2134567000のようなものに変更される可能性があり、浮動小数点金額のような正確な数値を格納する。

doubleは64ビットを使用して数値を格納するので、intと同じ精度で整数値を格納するのに十分な領域があります。したがって、倍精度を使用する限り、あまりにも多くの問題にぶつかる。

+0

@ニック。ご回答有難うございます。浮動小数点値を整数型の値で加算、掛け算、減算、または除算する必要がある場合は、整数または浮動小数点数で値を格納する必要があるという別の質問があります。もし理由がなければ。説明してください。私は非常に基本的な質問を知っている。 – AbdulAziz

+0

'(float)3 == 3'でないことは保証されています。一般に、IEEE浮動小数点型は、全ての整数を「-2^M .. 2^M」の範囲に格納する。ここで、「M」は仮数のビット数である。 – jpalecek

+0

@Nickありがとうございました。 – AbdulAziz

0

浮動変数と二重変数には分数はあまりないが、正確ではないことは完全に不可能ではありません。

0

はい、ダブル、フロートは、0、1、2、3、などの整数値を持つことができます...

関連する問題