Rumah > pembangunan bahagian belakang > C++ > Adakah Terdapat Fungsi Bulat Terbina dalam dalam C dan Bagaimana Saya Boleh Melaksanakannya?

Adakah Terdapat Fungsi Bulat Terbina dalam dalam C dan Bagaimana Saya Boleh Melaksanakannya?

Barbara Streisand
Lepaskan: 2024-12-31 10:02:21
asal
148 orang telah melayarinya

Is There a Built-in Round Function in C   and How Can I Implement One?

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);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan