Penukaran yang salah dari Celsius kepada Fahrenheit
Dalam C , penukaran daripada Celsius kepada Fahrenheit menggunakan aritmetik titik terapung memerlukan perhatian khusus. Pertimbangkan kod berikut:
<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>
Mengapa program ini mengeluarkan 0 untuk sebarang input Celsius?
Isunya terletak pada pembahagian integer (5/9). Secara lalai, C melakukan pembahagian integer, yang menghasilkan 0 dalam kes ini. Untuk menangani perkara ini, kita mesti menghantar salah satu operan kepada jenis titik terapung untuk memaksa pembahagian titik terapung. Kod yang diperbetulkan di bawah:
<code class="cpp">#include <iostream> using namespace std; int main() { float celsius; float fahrenheit; cout << "Enter Celsius temperature: "; cin >> celsius; fahrenheit = (5.0/9) * (celsius + 32); cout << "Fahrenheit = " << fahrenheit << endl; return 0; }</code>
Atas ialah kandungan terperinci Mengapakah Penukaran C Celsius ke Fahrenheit Saya Sentiasa Output 0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!