Rumah >pembangunan bahagian belakang >C++ >Mengapa program Fahrenheit ke Celsius C saya mengeluarkan 0 dan bagaimana saya boleh membetulkannya?

Mengapa program Fahrenheit ke Celsius C saya mengeluarkan 0 dan bagaimana saya boleh membetulkannya?

Barbara Streisand
Barbara Streisandasal
2024-10-28 14:41:30233semak imbas

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

Penukaran daripada Fahrenheit kepada Celsius: Pengubahsuaian Persamaan Penting

Dalam atur cara C ini, matlamat kami adalah untuk menukar daripada Fahrenheit kepada Celsius. Walau bagaimanapun, kod pada masa ini menghasilkan output yang tidak dijangka sebanyak 0. Mari kita siasat sebab di sebalik isu ini.

Barisan bermasalah dalam kod ialah:

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

Isu timbul daripada operasi pembahagian (5/9). Dalam C , pembahagian integer dilakukan secara lalai, yang bermaksud hasilnya dipotong kepada integer. Ini dengan berkesan menjadikan pembahagian itu menghasilkan 0, walaupun kami berhasrat ia menjadi nilai titik terapung.

Untuk membetulkannya, kami perlu mengubah suai bahagian untuk menggunakan aritmetik titik terapung. Kita boleh melakukan ini dengan menghantar salah satu operan ke apungan, seperti berikut:

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

Dengan menghantar 5 kepada apungan (5.0), kami memaksa keseluruhan bahagian dilakukan dalam mod titik terapung, menghasilkan formula penukaran yang betul.

Dengan pengubahsuaian ini, program kini mengira penukaran Fahrenheit-ke-Celsius dengan betul, memberikan hasil yang tepat apabila suhu Celsius dimasukkan.

Atas ialah kandungan terperinci Mengapa program Fahrenheit ke Celsius C saya mengeluarkan 0 dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn