Rumah >pembangunan bahagian belakang >C++ >Mengapa Program Penukaran C Fahrenheit ke Celsius Saya Sentiasa Output 0?
Aturcara C yang direka untuk menukar Fahrenheit kepada Celsius menemui output sifar yang tidak dijangka. Berikut ialah kod bersama-sama dengan isu:
<code class="cpp">#include <iostream> using namespace std; int main() { float celsius; float fahrenheit; cout << "Enter Celsius temperature: "; cin >> celsius; fahrenheit = (5/9) * (celsius + 32); cout << "Fahrenheit = " << fahrenheit << endl; return 0; }</code>
Setelah dilaksanakan, atur cara tidak menukar Celsius kepada Fahrenheit dengan tepat dan sentiasa output 0.
Masalahnya terletak dalam formula yang digunakan untuk mengira Fahrenheit: fahrenheit = (5/9) * (celsius 32).
Dalam ini ungkapan:
Oleh itu , 5/9 menilai kepada 0, dan suhu Fahrenheit yang terhasil juga 0, tanpa mengira nilai Celsius input.
Untuk menyelesaikan isu, seseorang perlu memastikan bahawa pembahagian operasi menghasilkan nombor titik terapung. Ini boleh dicapai dengan menukar salah satu operan kepada jenis titik terapung. Kod yang diperbetulkan:
<code class="cpp">fahrenheit = (5.0/9) * (celsius + 32);</code>
Dengan pengubahsuaian ini, 5.0/9 menjadi pembahagian titik terapung, mengekalkan bahagian pecahan dan menghasilkan penukaran Fahrenheit yang betul.
Atas ialah kandungan terperinci Mengapa Program Penukaran C Fahrenheit ke Celsius Saya Sentiasa Output 0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!