Membundarkan Nilai Titik Terapung dalam C
Timbul persoalan sama ada perpustakaan C standard termasuk fungsi yang dinamakan round() untuk memudahkan pembundaran nilai titik terapung. Walaupun terdapat ceil() dan floor() dalam tajuk math.h, round() kekal tiada.
Melaksanakan Fungsi Pembundaran
Walaupun round() tidak tersedia secara asli dalam perpustakaan standard C 98, pelaksanaannya agak mudah. Berikut ialah contoh fungsi pusingan separuh ke atas:
double round(double d) { return floor(d + 0.5); }
Pelaksanaan ini mengira nilai bulat dengan menambah 0.5 pada input, kemudian menggunakan fungsi lantai untuk memotong hasilnya.
Sebab Ketiadaannya di Perpustakaan Standard C 98
Pengguguran round() daripada standard C 98 mungkin berpunca daripada fakta bahawa ia boleh dilaksanakan dalam pelbagai cara. Pendekatan bulat-separuh-ke atas biasanya digunakan, tetapi kaedah pembundaran lain, seperti bulat-ke-genap, wujud. Melaksanakan pendekatan berbeza ini menambahkan kerumitan pada perpustakaan standard.
Penyelesaian C Moden
C 11 memperkenalkan fungsi round() terbina dalam: std::round, std: :lround, dan std::llround. Ini menyediakan cara yang lebih mantap dan cekap untuk melaksanakan operasi pembundaran pada nilai titik terapung.
Atas ialah kandungan terperinci Adakah Terdapat Fungsi Bulat Terbina dalam dalam C dan Bagaimana Saya Boleh Melaksanakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!