>> DAVID J. MALAN: Seperti yang anda mungkin tahu, suhu diukur menggunakan
skala yang berbeza di berbeza bahagian dunia.
Sebagai contoh, 212 darjah Fahrenheit adalah 100 darjah Celsius dan 32 darjah
Fahrenheit adalah 0 darjah Celsius.
Bukankah lebih baik jika kita mempunyai komputer program yang membolehkan kita untuk
menukar daripada, katakan, Fahrenheit untuk Celsius?
>> Nah, kita boleh menulis program itu.
Mari pertama bermula dengan termasuk cs50.h, supaya kita boleh menggunakan fungsi yang dipanggil
mendapatkan terapung, yang mana, seperti mendapatkan int, mendapat nombor dari pengguna, tetapi kali ini yang
nombor titik terapung - satu dengan titik perpuluhan.
>> Mari kita juga merangkumi io.h standard supaya kita mempunyai akses kepada
fungsi seperti cetak f.
Dan mari kita juga mengaku utama dengan cara biasa.
>> Mari kita datang segera pengguna untuk suhu dalam Fahrenheit.
Mari kita sekarang benar-benar mendapatkan suhu yang dari pengguna, pertama oleh
mengisytiharkan pembolehubah yang dipanggil f jenis apung.
Float A, sekali lagi, bermakna pembolehubah yang menyimpan nilai titik terapung,
satu dengan titik perpuluhan.
>> Mari kita sediakan pulangan nilai daripada acara apung.
Dan kemudian mari kita buat sedikit aritmetik padanya, pertama mengisytiharkan apungan lain
dipanggil C untuk Celsius dan kedai di C hasil daripada beberapa aritmetik biasa.
5.0 dibahagikan dengan 9.0 kali F tolak 32.0.
>> Sekarang mari kita mencetak hasilnya pengiraan ini.
peratus f -
menandakan pemegang tempat bagi terapung titik nilai -
koma C untuk mencetak suhu dalam Celsius.
Mari kita menyimpan akhir saya.
Menyusun dengan F untuk C. Run program ini dengan dot slash F C.
>> Dan mari kita cuba yang biasa suhu.
212 darjah di Fahrenheit adalah 100 darjah Celsius.
32 darjah di Fahrenheit adalah 0 darjah dalam Celsius.
>> Sekarang mari memperbaiki program ini sedikit sedikit dengan tidak mencetak cukup sebagai banyak 0 ini
selepas itu tempat perpuluhan.
Untuk melakukan ini, saya akan kembali ke garisan 11.
Dan bukan hanya nyatakan peratus f, Saya akan nyatakan sebaliknya, katakan,
0.1 f, memaklumkan f cetak bahawa saya hanya ingin mencetak Nilai titik apung
kepada satu nilai selepas tempat perpuluhan.
>> Mari kita menyimpan semula program saya.
Susun semula dengan make F untuk C. Kemudian memutarkan lagi dengan dot slash F untuk C. Dan
mari kita mencuba lagi dengan, katakan, 212, yang memberikan saya 100.0.
>> Kini ia diperhatikan yang saya lakukan sesuatu yang sangat sengaja selaras 9.
Perhatikan bagaimana saya menulis 5 adalah 5.0, 9 sebagai 9.0, dan juga 32 sebagai 32.0.
Nah, dua orang yang awal pertama adalah nilai-nilai sangat sengaja dipilih untuk menjadi
mata yang terapung, bukan hanya kerana konsisten dengan yang lain
program saya -
yang dengan jelas melibatkan terapung mata yang -
tetapi kerana ia ternyata C itu, Jika anda membahagikan int an oleh int lain,
menyebabkan jawapan anda akan mendapat adalah sendiri int, walaupun jika cara yang
perlu buang segala-galanya selepas titik perpuluhan.
>> Dalam erti kata lain, jika saya mengubah kepada 5.0 5 atau ini 9,0-9 dan kemudian menyimpan semula
program saya, susun semula dengan solekan F kepada C, dan kemudian berjalan semula dengan slash dot F
kepada C dan jenis dalam input seperti 212, melihat bahawa jawapan yang saya akan
mendapatkan masa ini sebenarnya agak salah.
0.0 bukan ijazah yang betul dalam Celsius sebagai 212 Fahrenheit.
>> Nah, apa yang berlaku?
Nah, dalam talian 9, kerana 5 adalah kini merupakan integer dan kerana 9 adalah kini merupakan
integer, hasilnya secara matematik harus 0,5555 dan sebagainya.
Tetapi kerana hasilnya, menurut Peraturan C, perlu int, bahawa
0,5555 mendapat dibuang, meninggalkan kita dengan hanya 0.
>> Jadi pada akhirnya, saya akhirnya mendarabkan agak tidak sengaja 0 kali f tolak
32.0, yang tidak kira apa sentiasa akan memberikan saya 0.
Jadi jangan ingat, bila-bila masa menggunakan mata yang terapung di berdekatan
Ints, anda mungkin tidak semestinya mendapatkan jawapan supaya anda harapkan.
Dan sebagainya menjaga untuk digunakan, seperti yang saya lakukan dalam nilai kes pertama, titik terapung
di seluruh untuk mengelakkan sebarang isu-isu tersebut.