Rumah >pembangunan bahagian belakang >C++ >Mengapa program Fahrenheit ke Celsius C saya mengeluarkan 0 dan bagaimana saya boleh membetulkannya?
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!