Làm tròn đến chữ số thập phân thứ nhất trong C++

#include <iostream>
#include <cmath> 
using namespace std;
int main (){
	float a,b,c, d;
	cout << "Nhap diem toan: ";
	cin >> a; 
	cout << "Nhap diem ly: ";
	cin >> b; 
	cout << "Nhap diem hoa: ";
	cin >> c; 
	d = round((a+b+c)/3); //em muốn làm tròn chữ số thập phân thứ nhất thì thế nào ạ?
	cout << "Diem trung binh: << d; 
	return 0; 
}

đoán không lầm thì chắc đề bài kêu bạn xuất ra số đã làm tròn đến 1 chữ số thập phân
nếu là như vậy, bạn có thể không cần phải làm tròn trong lúc tính toán, mà chỉ cần làm tròn lúc xuất kết quả mà thôi, ví dụ như này

    std::printf("%.1f", result); // in số float với 1 số thập phân

hoặc nghiên cứu thêm về làm tròn số thì cũng không có gì sai trái, và mình cũng khuyến khích là biết nhiều cách. một kí thuật làm tròn phổ biến là
nhân số cần làm tròn với lũy thừa của 10 -> dùng hàm biến nó thành số nguyên (cắt bỏ phần thập phân) -> chia lại cho lũy thừa của 10
ví dụ, muốn làm tròn 125.2837 lấy 2 số thập phân

  • nhân lũy thừa của 10, ở đây lấy 2 số thập phân thì là 10^2: 125.2837*10^2 = 12528.37
  • cắt bỏ phần thập phân: [12528.37] -> 12528
  • chia lại cho lũy thừa của 10 đã nhân ban đầu là 10^2: 12528/100 = 125.28

về các bước này dùng những hàm nào thì bạn có thể search google, những hàm này quá phổ biến nên rất dễ tìm

3 Likes

cảm ơn anh, e làm đc r!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?