なぜ、intの代わりにfloatを使用すると、すべての入力が整数のときに私の結果が変わるのですか?整数と浮動小数点の使用
{
int a = 17, b = 5;
int c = a/b;
cout<<c;
}
{
float a = 17, b = 5;
float c;
c = a/b;
cout<<c;
}
なぜ、intの代わりにfloatを使用すると、すべての入力が整数のときに私の結果が変わるのですか?整数と浮動小数点の使用
{
int a = 17, b = 5;
int c = a/b;
cout<<c;
}
{
float a = 17, b = 5;
float c;
c = a/b;
cout<<c;
}
/演算子による除算が異なります。
両方が整数である場合、
c = a/b;
はそう17/5 --> 3
、整数の除算を行います。
両方が倍増している場合は、
c = a/b;
は、浮動小数点除算、そう17.0/5.0 --> 3.4
を行います。
これは価値についてではありません。浮動小数点型変数は、たとえ整数値を代入していても浮動小数点数としてその値を保持します。あなたはフロート変数にを割り当てているのであれば、あなたの変数は、17.0としてこの値を保持し、浮動小数点に応じていずれかの操作を行います。
ドキュメントを読む:https://stackoverflow.com/documentation/floating-point/8816/getting-started-with-floating-point – Nimish
さまざまな種類のデータに異なる操作が適用されます。なぜ彼らは同じであるべきですか? CまたはC++のまともな本は、浮動小数点と整数除算の違いについて説明します。 –
@JohnColeman CやC++でまともな本を教えてもらえますか? – vasanths294