C の浮動小数点除算を理解する
double 変数に代入されているにもかかわらず、指定された変数では除算 (3/5) の結果は 0 になります。整数除算によるコード。 C は、デフォルトで除算式のオペランドを整数として評価します。 3 と 5 はどちらも整数であるため、それらの除算では整数の結果 (ゼロ) が得られます。
結果が小数精度を維持する浮動小数点除算を実行するには、少なくとも 1 つのオペランドが浮動小数点リテラルである必要があります。 。これにより、コンパイラは除算を浮動小数点演算として扱い、浮動小数点の結果を返すように強制されます。
元のコードでは、意図した浮動小数点除算を実現するには、次のように変更できます。
#include <iostream> int main(int argc, char** argv) { double f = 3.0 / 5; // Change both operands to floating-point literals std::cout << f; return 0; }
1 つのオペランド (この場合は 3.0) を浮動小数点リテラルにすることで、コンパイラーは浮動小数点除算を実行し、結果は小数点以下の値を正しく反映します。値。
以上がC の整数除算の結果がゼロになるのはなぜですか?また、浮動小数点除算はどのように達成できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。