2011-11-09 35 views
68

Có lẽ đây là một câu hỏi ngớ ngẩn, nhưng tôi không thể đoán làm thế nào để giải quyết nó nếu nó không tạo ra một phương pháp. Có lẽ có một "cách tự nhiên" để làm điều đó, như trong C chẳng hạn. Dưới đây là các vấn đề:Làm thế nào để in một đôi với hai số thập phân trong Android?

Tôi có một var:

double a; 

Và tôi muốn thể hiện nó chỉ với 2 hoặc 3 số thập phân. Khi tôi cố gắng thể hiện điều đó:

Text.setText("Value of a: " + String.valueOf(a)); 

Nó cung cấp cho một cái gì đó như:

Giá trị của a: 5,234966145

Và tôi muốn chỉ

Giá trị của một : 5.23

Nếu không thay đổi giá trị thực của nó, nó sẽ hiển thị số gần đúng nhưng hoạt động với số thực.

+0

doubleNumber.toString(). substring (0, 3) – Madi

Trả lời

155
Text.setText(String.format("Value of a: %.2f", a)); 
8

sử dụng này một:

DecimalFormat form = new DecimalFormat("0.00"); 
etToll.setText(form.format(tvTotalAmount)); 

Lưu ý: dữ liệu phải ở định dạng số thập phân (tvTotalAmount)

4
textView2.setText(String.format("%.2f", result)); 

DecimalFormat form = new DecimalFormat("0.00"); 
     textView2.setText(form.format(result)); 

... gây ra lỗi "NumberFormatException" trong ngôn ngữ cho châu Âu vì nó đặt kết quả là dấu phẩy thay vì dấu thập phân - lỗi xảy ra khi textView được thêm vào số trong editText. Cả hai giải pháp đều hoạt động tốt ở địa phương ở Hoa Kỳ và Vương quốc Anh.

19

Trước khi sử dụng DecimalFormat bạn cần phải sử dụng nhập khẩu sau hoặc mã của bạn sẽ không hoạt động:

import java.text.DecimalFormat; 

Mã để định dạng là:

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case 
txtTextField.setText(precision.format(dblVariable)); 
+0

Mã của bạn hiển thị giá trị được làm tròn. Ví dụ, nó cho thấy 2.82 bằng cách gọi precision.format (2.81666666) ... – anivaler

12

Đối với Hiển thị chữ số tối đa hai chữ số thập phân có có hai khả năng - 1) Thứ nhất, bạn chỉ muốn hiển thị chữ số thập phân nếu có. Ví dụ - i) 12.10 được hiển thị như 12.1, ii) 12.00 được hiển thị như 12. Sau đó use-

DecimalFormat formater = new DecimalFormat("#.##"); 

2) Thứ hai, bạn muốn hiển thị chữ số thập phân không phụ thuộc vào hiện tại thập phân Ví dụ -i) 12.10 sẽ được hiển thị là 12.10. ii) 12 được hiển thị là 12.00.Sau đó, sử dụng-

DecimalFormat formater = new DecimalFormat("#.00"); 
+1

Điều này sẽ định dạng "0" là ".00". Thay vào đó hãy sử dụng 'DecimalFormat mới (" 0,00 ")' để hiển thị "0" là "0,00" – PrashanD

Các vấn đề liên quan