Làm tròn số thập phân trong Java – Rút gọn và hiển thị n số sau dấu phẩy

2
6234
lam tron va hien thi so thuc trong java

Làm tròn đến 2 số thập phân trong java, hiển thị lấy 2 số sau dấu phẩy. Cách làm tròn số thực đến phần thập phân thứ n giúp bạn rút gọn số sử dụng hai hàm math.roundmath.ceil java.

Làm tròn số thập phân là gì?

Làm tròn số thập phân trong java hay còn gọi là decimalformat giúp bạn hiển thị số thập phân ra màn hình khi đã làm tròn một cách hợp lý. Việc bạn làm tròn đến phần thứ bao nhiêu thì tùy bạn.

Tại sao chúng ta cần phải làm như vậy? Để giải quyết các bài toán có sử dụng tới các kết quả đầu ra ở dạng số thực. Ví dụ như tính điểm trung bình, trung bình cộng, diện tích, thể thích . . .

Hầu hết các tài liệu học lập trình đều không nói đến vấn đề này. Nhưng nếu bạn thử hỏi các tiền bối đi trước, thì chắc chắn họ sẽ biết. Và bài viết này sẽ giành cho bạn nào đang vướng mắc về yếu tố nhỏ xíu này nhé!

Cách làm tròn trong Java?

Bạn có thể xem làm tròn số thập phân trong C/C++ để hiểu được phần nào kết quả mà chúng ta sẽ đạt được.

Có 2 cách mà các lập trình viên Java thường dùng. Cả hai cách trên đều rất đơn giản. Bây giờ mình sẽ nói cụ thể nhé!

Cách 1: Dùng hàm printf (giống với C)

Cú pháp: System.out.printf(“%.nf”, value);

Trong đó n là số chữ số sau dấu phẩy bạn muốn làm tròn (thường là 2), value là tên biến cần làm tròn.

Cách 2: Sử dụng hàm Math.ceil() hoặc Math.round()

Cả hai phương thức Math.ceil() và Math.round() đều có tác dụng làm tròn một số thực ( kiểu float, double) về số nguyên kiểu int với giá trị gần nhất.
Ví dụ: Math.ceil(1.333) thì sẽ trả về là 1.
Math.round(1.789778) sẽ trả về là 2.

Vậy làm thế nào để chúng ta có thể lấy đến n số phần thập phân?

Có một ý tưởng đưa ra đó là chúng ta sẽ nhân số này với 10^n sau đó dùng hàm làm tròn. Rồi lấy kết quả đó chia cho 10^n và không làm tròn. Vậy thì ta sẽ làm tròn được số ban đầu tới phần thập phân thứ n.

Cú pháp: Result = Math.round(value*10^n.0)/ (10^n.0)

Ví dụ cụ thể. Mình sẽ làm tròn biến c = 0.5555556 đến phần thập phân thứ 2.

Bước 1: Ta nhân c với 100.0 (10^2). Kết quả c= 55.55556
Bước 2: Làm tròn c bằng Math.ceil() hoặc Math.round(). Kết quả c=56
Bước 3: Chia c cho 100.0 (100.0 giúp ép c trở về kiểu số thực). Kết quả c=0.56

Vậy là ta đã thực hiện xong cách 2 rồi đó!
Xem code phần dưới của mình cho dễ hiểu hơn nhé!

Code làm tròn số thực – Java Decimalformat

// Code lam tron so thuc den phan thap phan thu 2
// By tailieu.pro

public class Decimalformat {
	
	public static void main(String[] args) {
		
		int a=5;
		int b=9;
		double c = (double)a / (double)b;   // Ép kiểu hai biến a và b về kiểu double
		
		System.out.println("\nKhi chua lam tron: "+c);
		
		System.out.printf("\nSau khi lam tron: \nLam tron dung printf: %.2f",c);
		
		System.out.println("\nLam trong dung Math.round(): "+ Math.round(c*100.0)/100.0);
		
		System.out.println("Lam tron dung math.ceil(): "+ Math.ceil(c*100.0)/100.0);
	}

}

Kết quả khi chạy chương trình trên:

cach lam tron so thap phan trong java

Hi vọng bài viết này hữu ich cho bạn. Cảm ơn bạn đã ghé thăm tailieu.pro ^^!

Có thể bạn quan tâm khai báo và nhập xuất mảng một chiều trong Java.

2 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here