2011-08-25 39 views

Trả lời

69

Sử dụng tính năng này:

printf ("%.2f", 3.14159); 
+8

Cần lưu ý rằng điều này thực sự làm tròn số, nó không chỉ cắt bỏ nó. – jimpic

1

Bạn có thể thử printf ("%. 2f", [double]);

12

Bạn có thể sử dụng một cái gì đó như thế này:

printf("%.2f", number); 

Nếu bạn cần phải sử dụng các chuỗi cho một cái gì đó khác hơn là in ra, bạn se lớp NumberFormat:

NumberFormat formatter = new DecimalFormatter("#.##"); 
String s = formatter.format(3.14159265); // Creates a string containing "3.14" 
+3

Hoặc 'String s = String.format ("%. 2f ", number) '. – brimborium

3

như mô tả trong Formatter lớp, bạn cần phải khai báo chính xác. %.2f trong trường hợp của bạn.

2

Sử dụng này

printf ("%.2f", 3.14159); 
0

Tôi đề nghị để tìm hiểu nó với printf bởi vì đối với nhiều trường hợp này sẽ là đủ cho nhu cầu của bạn và bạn sẽ không cần phải tạo các đối tượng khác.

double d = 3.14159;  
printf ("%.2f", d); 

Nhưng nếu bạn cần làm tròn vui lòng tham khảo bài này

https://stackoverflow.com/a/153785/2815227

1
System.out.printf("%.2f", number); 

NHƯNG, điều này sẽ làm tròn số đến điểm thập phân gần nhất bạn đã đề cập. (Như trong trường hợp của bạn, bạn sẽ nhận được 3,14 kể từ làm tròn 3,14159 đến 2 dấu thập phân sẽ là 3,14)

Vì hàm printf sẽ làm tròn số câu trả lời cho một số con số khác có thể trông như thế này,

System.out.printf("%.2f", 3.14136); -> 3.14 
System.out.printf("%.2f", 3.14536); -> 3.15 
System.out.printf("%.2f", 3.14836); -> 3.15 

Nếu bạn chỉ cần cắt các số thập phân và hạn chế nó đến một k số thập phân không làm tròn,

cho phép nói k = 2.

System.out.printf("%.2f", 3.14136 - 0.005); -> 3.14 
System.out.printf("%.2f", 3.14536 - 0.005); -> 3.14 
System.out.printf("%.2f", 3.14836 - 0.005); -> 3.14 
Các vấn đề liên quan