Rumah > pembangunan bahagian belakang > C++ > Program C++ untuk membundarkan nombor kepada n tempat perpuluhan

Program C++ untuk membundarkan nombor kepada n tempat perpuluhan

PHPz
Lepaskan: 2023-09-12 17:13:02
ke hadapan
1873 orang telah melayarinya

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.

Gunakan rentetan format

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

Tatabahasa

Sintaks pernyataan printf.

printf ( “%.<number of decimal place>f”, <floating point number> );
Salin selepas log masuk

Sebagai contoh, jika kita ingin memaparkan pembolehubah titik terapung NUM, mengekalkan 4 tempat perpuluhan, pernyataan akan menjadi seperti ini -

printf ( “%.4f”, NUM );
Salin selepas log masuk
Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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

Output

Number 45.278586 up to 3 decimal places: 45.279
Salin selepas log masuk

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++.

Gunakan kaedah setprecision

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:

Tatabahasa

Tentukan kaedah ketepatan () set

include <iomanip>
std::cout << std::fixed;
std::cout << std::setprecision( <number of decimal places> );
std::cout << The_floating_point_number;
Salin selepas log masuk

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;
Salin selepas log masuk
Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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

Output

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

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 −

Gunakan kaedah round()

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.

Tatabahasa

Gunakan kaedah round()

include <cmath>
float res = round ( <floating point number> );
Salin selepas log masuk

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;
Salin selepas log masuk
Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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

Output

Number 45.278586 to its nearest integer: 45
Number 89.7854 to its nearest integer: 90
Number -45.69 to its nearest integer: -46
Salin selepas log masuk

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().

Kesimpulan

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!

Label berkaitan:
sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan