Rumah > Artikel > pembangunan bahagian belakang > Program C++ untuk membundarkan nombor kepada n tempat perpuluhan
Mewakili nombor sebagai output adalah tugas yang menarik dan penting apabila menulis program dalam mana-mana bahasa. Untuk jenis integer (data jenis pendek, panjang atau sederhana), mudah untuk mewakili nombor sebagai output. Untuk nombor titik terapung (jenis terapung atau berganda), kadangkala kita perlu membundarkannya kepada nombor tempat perpuluhan tertentu. Sebagai contoh, jika kita ingin mewakili 52.24568 sebagai tiga tempat perpuluhan, beberapa prapemprosesan diperlukan. Dalam artikel ini, kami akan memperkenalkan beberapa teknik untuk mewakili nombor titik terapung kepada nombor tempat perpuluhan tertentu dengan membundarkan.
Antara kaedah yang berbeza, adalah penting untuk menggunakan rentetan format seperti C, menggunakan hujah ketepatan dan menggunakan fungsi round() daripada perpustakaan matematik. Mari kita lihat mereka satu persatu. Dengan sintaks dan contoh kod yang betul.
Dalam bahasa C, kami menggunakan fungsi printf() untuk mewakili cetakan dengan format. Untuk menggunakan fungsi printf() untuk memaparkan beberapa data, anda perlu menentukan rentetan format terlebih dahulu. Fungsi printf() yang sama juga berfungsi dalam C++. Untuk mewakili nombor dengan bilangan tempat perpuluhan tertentu, sintaks pemformatan akan kelihatan seperti ini
Sintaks pernyataan printf.
printf ( “%.<number of decimal place>f”, <floating point number> );
Sebagai contoh, jika kita ingin memaparkan pembolehubah titik terapung NUM, mengekalkan 4 tempat perpuluhan, pernyataan akan menjadi seperti ini -
printf ( “%.4f”, NUM );Terjemahan bahasa Cina bagi
#include <iostream> using namespace std; void solve( float number) { printf ( "%.3f", number ); } int main(){ cout << "Number 45.278586 up to 3 decimal places: "; solve( 45.278586 ); }
Number 45.278586 up to 3 decimal places: 45.279
Dalam contoh ini, kita dapat melihat bahawa nombor yang diberikan mempunyai 6 tempat perpuluhan. Tetapi kami hanya memaparkan kepada 3 tempat perpuluhan. Dan secara automatik ditukar kepada nilai terdekat apabila dibundarkan. Walau bagaimanapun, terdapat kelemahan untuk proses ini. Kami tidak boleh menukar nilai tempat perpuluhan secara dinamik pada bila-bila masa. Untuk mengatasi masalah ini, kita boleh mengambil pendekatan lain menggunakan kaedah setprecision() berasaskan C++.
C++ mempunyai fungsi pemformatan khas yang dipanggil setprecision(), yang digunakan untuk menetapkan nilai ketepatan kepada sehingga n tempat perpuluhan. Untuk menggunakan kaedah ini, kita perlu mengimport perpustakaan iomanip. Ia juga perlu untuk menyatakan bahawa kita menggunakan nombor tetap tempat perpuluhan. Sintaksnya adalah seperti berikut:
Tentukan kaedah ketepatan () set
include <iomanip> std::cout << std::fixed; std::cout << std::setprecision( <number of decimal places> ); std::cout << The_floating_point_number;
Sebagai contoh, jika kita ingin memaparkan pembolehubah titik terapung NUM, mengekalkan 4 tempat perpuluhan, pernyataannya akan menjadi seperti ini -
include <iomanip> std::cout << std::fixed; std::cout << std::setprecision( 4 ); std::cout << NUM;Terjemahan bahasa Cina bagi
#include <iostream> #include <iomanip> using namespace std; void solve( float number, int place) { cout << fixed; cout << setprecision( place ); cout << number << endl; } int main(){ cout << "Number 45.278586 up to 3 decimal places: "; solve( 45.278586, 3); cout << "Number 45.278586 up to 4 decimal places: "; solve( 45.278586, 4); cout << "Number 45.278586 up to 5 decimal places: "; solve( 45.278586, 5); }
Number 45.278586 up to 3 decimal places: 45.279 Number 45.278586 up to 4 decimal places: 45.2786 Number 45.278586 up to 5 decimal places: 45.27859
Ini ialah cara yang ideal untuk mewakili n digit selepas titik perpuluhan. Kadang-kadang apabila n = 0, kita boleh menggunakan kaedah lain untuk membulatkan. Ini akan menukar nombor kepada integer. Kaedah khusus adalah seperti berikut −
Pustaka "cmath" mempunyai kaedah bulat() untuk menukar nombor kepada integer terdekatnya. Jadi ini menukar nombor titik terapung kepada 0 tempat perpuluhan. Sintaksnya adalah seperti berikut.
Gunakan kaedah round()
include <cmath> float res = round ( <floating point number> );
Sebagai contoh, jika kita ingin membundarkan nombor 45.254 kepada integer terdekat, penyataan akan kelihatan seperti ini.
include <cmath> float res = round ( 45.254 ); std::cout << res;Terjemahan bahasa Cina bagi
#include <iostream> #include <cmath> using namespace std; void solve( float number) { float res; res = round ( number ); cout << res << endl; } int main(){ cout << "Number 45.278586 to its nearest integer: "; solve( 45.278586 ); cout << "Number 89.7854 to its nearest integer: "; solve( 89.7854 ); cout << "Number -45.69 to its nearest integer: "; solve( -45.69 ); }
Number 45.278586 to its nearest integer: 45 Number 89.7854 to its nearest integer: 90 Number -45.69 to its nearest integer: -46
Dalam contoh ini, adalah jelas bahawa cara yang sesuai dan mudah untuk menukar nombor titik terapung kepada integer terdekat adalah dengan menggunakan fungsi round(). Fungsi ini mengambil nombor sebagai hujah dan mengembalikan setara integer. Dalam contoh kita, kita mempunyai nombor negatif -45.69, dan selepas membundarkannya, ia menjadi -46, yang lebih kecil daripada nombor asal. Jadi kaedah round() tidak seperti floor() atau ceil().
Apabila kita menulis kod dalam C++, terdapat beberapa cara untuk mewakili nombor titik terapung hingga n tempat perpuluhan. Cara paling asas ialah menggunakan kaedah printf() dan rentetan format. Walau bagaimanapun, dengan kaedah ini, rentetan format tempat perpuluhan tidak boleh diubah secara dinamik. Untuk mengendalikan ini, pustaka iomanip C++ mempunyai kaedah ketepatan () yang ditetapkan, yang mendapatkan bilangan tempat perpuluhan untuk membundarkan nombor titik terapung. Kadangkala kita perlu membundarkan nombor titik terapung kepada integer terdekat (0 tempat perpuluhan), dalam kes ini kita boleh menggunakan kaedah bulat() daripada perpustakaan cmath dalam C++.
Atas ialah kandungan terperinci Program C++ untuk membundarkan nombor kepada n tempat perpuluhan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!