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

Program C++ untuk membundarkan nombor kepada n tempat perpuluhan

PHPz
PHPzke hadapan
2023-09-12 17:13:021769semak imbas

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> );

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

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 );
}

Output

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

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;

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

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);
}

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

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> );

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

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 );
}

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

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam