私はプログラミングの初心者です。整数型の値にdouble/floatを使用する
私には非常に基本的な質問があります "整数型の値に型変数を二重または浮動できますか?" 私が意味する、例えば
float a = 2;
double b = 3.2;
は
私はプログラミングの初心者です。整数型の値にdouble/floatを使用する
私には非常に基本的な質問があります "整数型の値に型変数を二重または浮動できますか?" 私が意味する、例えば
float a = 2;
double b = 3.2;
は
はいありがとうございます、しかし、あなたは整数を格納するためのフロートを使用した場合の精度の損失があります。
通常、整数は32ビットを使用して数値を格納します。つまり、約20億(約)の範囲の数値を保持できます。
しかし、浮動小数点は32ビットを使用して小数点の前後に両方の部分を格納するため、精度を保存するための十分な領域がありません。浮動小数点数は20億を超える数値を格納できますが、数値が大きいほど精度が上がりますので、浮動小数点数に2134567891のような数値を格納すると2134567000のようなものに変更される可能性があり、浮動小数点金額のような正確な数値を格納する。
doubleは64ビットを使用して数値を格納するので、intと同じ精度で整数値を格納するのに十分な領域があります。したがって、倍精度を使用する限り、あまりにも多くの問題にぶつかる。
浮動変数と二重変数には分数はあまりないが、正確ではないことは完全に不可能ではありません。
はい、ダブル、フロートは、0、1、2、3、などの整数値を持つことができます...
あなたがプログラミングに新しいしている場合 - あなたは 'float'sのpoissible用法な限り避けるべきであるとあなたが[浮動小数点演算](http://en.wikipedia.org/wiki/Floating_point#Floating-point_arithmetic_operations)についての基本を理解するまでは「二重」ですが、これはまったく問題ではありません。 – amit
整数は、CやJavaのように、5の代わりに1/2 * 10 = 0のように混乱させることもできます。浮動小数点は、プログラミングで学ぶ必要があります。 –
私は同意しません。整数セマンティクスを理解するには、オーバーフローのようなすべてのコーナーケースを含めて、たぶん1時間かかります。浮動小数点数を十分に理解しておけば、実際の浮動小数点コード(浮動小数点数を避けるのではなく)を書くだけでも十分理解できるようにするには、数日から数週間の間に悪い間違いがないように(数学的背景によって)私は数ヶ月または数年かかると言います。 –