Cách sử dụng Setprecision trong C++

Cach Su Dung Setprecision Trong C



Bạn có thể đã học và nghiên cứu các giá trị dấu phẩy động và ký hiệu khoa học trong toán học và vật lý. Bạn cũng có thể đã học cách làm tròn các số có dấu phẩy động. Tiện ích setprecision trong C++ thường được sử dụng để thay đổi chuỗi số được hiển thị bên trong chuỗi đầu ra số nguyên dấu phẩy động. Nó hoạt động tương tự như chức năng làm tròn. Phương thức này được định nghĩa trong thư viện chuẩn . Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng hàm “setprecision” của C++. Vậy hãy bắt đầu. Chúng ta phải khởi động ứng dụng shell Ubuntu thông qua “Ctrl+Alt+T” để hoạt động trên nó. Chúng ta phải khởi tạo cài đặt trình biên dịch C++, trong trường hợp của chúng ta là g++. Vì vậy, gói apt sẽ được sử dụng cho mục đích này cho đến nay. Hệ thống sẽ cài đặt g++ chỉ sau vài giây: $ sudo đúng cách cài đặt g++

Ví dụ 01:

Vì vậy, chúng tôi đã mở tệp “new.cc” với hướng dẫn “nano”. Tệp này được tạo bằng cách sử dụng truy vấn “chạm” của shell. Tệp hiện được khởi chạy trong trình chỉnh sửa nano dưới dạng tệp trống. Chúng tôi đã thêm tệp tiêu đề “iostream” đầu vào-đầu ra ở trên cùng. Thư viện “iomanip” đã được thêm để sử dụng phương thức setprecision() trong mã của chúng tôi. Sau đó, chúng tôi sử dụng không gian tên tiêu chuẩn “std” để đảm bảo rằng chúng tôi đang sử dụng cách viết mã và cú pháp tiêu chuẩn. Mã tổng thể đã được thực hiện trong hàm main() của mã C++. Không có chức năng do người dùng xác định nào khác được sử dụng cho mục đích này.







Trong hàm main(), chúng ta đã khởi tạo một biến kiểu kép “v” với giá trị double. Câu lệnh tiêu chuẩn “cout” đầu tiên hiển thị giá trị biến kép thực tế “v” trên shell mà không có bất kỳ cập nhật nào. Sau đó, chúng ta đã sử dụng 8 câu lệnh cout để sử dụng phương thức setprecision() trong mỗi câu lệnh. Điều này là để áp dụng setprecision() trên mỗi dấu phẩy động của biến “v”. Bạn phải hiểu rằng setprecision chỉ hoạt động trên giá trị lớn hơn hoặc bằng 5. Nếu giá trị dấu phẩy động lớn hơn 5, nó sẽ tăng giá trị trước nó.



Ví dụ: setprecision() ở dấu phẩy động thứ nhất sẽ làm tròn “5” sau dấu phẩy và giá trị “4” sẽ được chuyển thành 5. Tương tự, giá trị dấu phẩy động thứ 2 “2” không thể được làm tròn, Giá trị dấu phẩy động thứ 3 “7” sẽ chuyển đổi giá trị “2” thành “3”, giá trị dấu phẩy động thứ 4 “4” không thể làm tròn và giá trị dấu phẩy động thứ 5 “9” sẽ chuyển đổi giá trị “4 ” đến 5 trước nó. Tại điểm “0” sẽ chuyển đổi giá trị “4” thành 5. setprecision() âm không làm gì ngoài việc hiển thị toàn bộ giá trị thực. Tất cả các giá trị tại các dấu phẩy động 0 đến 5 và -1, -2 sẽ được hiển thị sau khi áp dụng setprecision():







Đã đến lúc biên dịch và chạy mã C++ setprecision với truy vấn biên dịch g++ và truy vấn thực thi “./a.out”. Kết quả đầu ra cho thấy setprecision(1) đầu tiên chuyển đổi 4 thành 5. setprecision(2) không làm gì và hiển thị “4.5”. setprecision(3) đã tăng giá trị từ “4,52” lên “4,53”. setprecision(4) không làm gì với giá trị “4.527”. setprecision(5) tăng giá trị từ “4.5274” lên “4.5275”. setprecision(0) đã tăng giá trị lên 5. setprecision(-1) và setprecision(-2) không làm gì như minh họa bên dưới:

$ g++ mới.cc

$. / a.out



Ví dụ 02:

Chúng ta hãy xem một trường hợp khác. Mã này tương tự như ví dụ trên, chỉ có thay đổi trong câu lệnh cout. cout đầu tiên hiển thị các giá trị ban đầu trong khi hai cout tiếp theo hiển thị kết quả của setprecision() tại các dấu phẩy động 1 và 5. cout cuối cùng hiển thị kết quả của phương thức setprecision() tại dấu phẩy động 9, về mặt vật lý không có sẵn. Kết quả dấu phẩy động 1 và 5 khá được mong đợi, nhưng chúng ta không thể nói bất cứ điều gì về dấu phẩy động 9. Hãy thực thi tệp và kiểm tra xem đầu ra của mã này sẽ là gì:

#include

#include

sử dụng không gian tên tiêu chuẩn ;

int chủ yếu ( ) {

gấp đôi TRONG = 4.52749 ;

cout << 'Giá trị trước khi thiết lập độ chính xác: ' << TRONG << ' \N ' ;

cout << thiết lập chính xác ( 1 ) << 'Val lúc 1:' << TRONG << ' \N ' ;

cout << thiết lập chính xác ( 5 ) << 'Val lúc 5:' << TRONG << ' \N ' ;

cout << thiết lập chính xác ( 9 ) << 'Val lúc 9 giờ:' << TRONG << ' \N ' ;

trở lại 0 ;

}

Sau khi biên dịch và thực thi mã này, chúng ta có kết quả rõ ràng cho setprecision ở vị trí 1 và 3 của giá trị dấu phẩy động “4.52749”. Kết quả của setprecision 9 cho thấy giá trị thực của biến kép “v”. Điều này có thể là do giá trị của vị trí 9 không cố định:

$ g++ mới.cc

$. / a.out

Hãy cập nhật lại mã để sửa các giá trị của biến “v”. Vì vậy, sau khi câu lệnh cout setprecision() đầu tiên được áp dụng tại vị trí đầu tiên của biến, chúng ta đã sử dụng biến cố định trong cout:

#include

#include

sử dụng không gian tên tiêu chuẩn ;

int chủ yếu ( ) {

gấp đôi TRONG = 4.52749 ;

cout << 'Giá trị trước khi thiết lập độ chính xác: ' << TRONG << ' \N ' ;

cout << thiết lập chính xác ( 1 ) << 'Val lúc 1:' << TRONG << ' \N ' ;

cout << đã sửa ;

cout << thiết lập chính xác ( 5 ) << 'Val lúc 5:' << TRONG << ' \N ' ;

cout << thiết lập chính xác ( 9 ) << 'Val lúc 9 giờ:' << TRONG << ' \N ' ;

trở lại 0 ;

}

Sau khi biên dịch và chạy mã cập nhật này, chúng tôi có kết quả cố định của setprecision tại vị trí 9 của biến “v”, tức là 4.527490000:

$ g++ mới.cc

$. / a.out

Phần kết luận:

Cuối cùng, đây là tất cả về cách sử dụng phương thức setprecision() trong mã C++ để làm tròn và hiển thị giá trị của biến kép. Chúng tôi cũng đã giải thích các biến cố định trong mã và lợi ích của chúng. Ngoài ra, chúng tôi đã triển khai hai ví dụ quan trọng để giải thích khái niệm về độ chính xác được thiết lập trong C++. Chúng tôi hy vọng bạn thấy bài viết này hữu ích. Xem các bài viết Gợi ý Linux khác để biết thêm mẹo và hướng dẫn.