ホームページ >バックエンド開発 >C++ >華氏から摂氏への C プログラムが 0 を出力するのはなぜですか?どうすれば修正できますか?

華氏から摂氏への C プログラムが 0 を出力するのはなぜですか?どうすれば修正できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-28 14:41:30234ブラウズ

Why does my Fahrenheit to Celsius C   program output 0 and how can I fix it?

華氏から摂氏への変換: 重要な方程式の修正

この C プログラムの目標は、華氏から摂氏に変換することです。ただし、現在コードでは予期しない出力 0 が生成されます。この問題の背後にある理由を調べてみましょう。

コード内の問題行は次のとおりです。

fahrenheit = (5/9) * (celsius + 32);

問題は除算演算から発生します。 (5/9)。 C では、整数の除算がデフォルトで実行されます。これは、結果が整数に切り捨てられることを意味します。これにより、浮動小数点値であるつもりであっても、除算の結果は事実上 0 になります。

これを修正するには、浮動小数点演算を使用するように除算を変更する必要があります。これは、次のようにオペランドの 1 つを float にキャストすることで実行できます。

fahrenheit = (5.0/9) * (celsius + 32);

5 を float (5.0) にキャストすることで、除算全体が浮動小数点モードで実行されるように強制します。

この変更により、プログラムは華氏から摂氏への変換を正しく計算し、摂氏温度が入力されたときに正確な結果を提供するようになりました。

以上が華氏から摂氏への C プログラムが 0 を出力するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。