Tôi có đoạn code dưới đâyđúp để Chuỗi sử dụng tiêu chuẩn Java
double cellValue = 78871234510124568.0;
String cell = new BigDecimal(cellValue).toPlainString();
String b = String.format("%.0f", cellValue);
System.out.println("Double Value using Big Decimal " + cell);
System.out.println("Double Value using String format " + b);
Giá trị tăng gấp đôi mà ta đã đặt không được trả lại như đầu ra.
Gấp đôi giá trị sử dụng Big Decimal 78871234510124576
Gấp đôi giá trị sử dụng định dạng chuỗi 78871234510124576
Có một cách tiêu chuẩn để chuyển đổi một Double
đến một String
mà không rõ ràng loại đúc với khoảng giá trị là long
dữ liệu loại (giá trị lớn nhất) thay vì double
?
Ý định của tôi về việc đặt câu hỏi này là vì tôi đang đọc một bảng tính excel bằng cách sử dụng Apache POI với tất cả các loại tế bào là chung trong Excel. Tôi đang sử dụng getNumericCellValue()
để đọc giá trị của một ô luôn trả về số ở định dạng thập phân. Ví dụ 222 sẽ được trả lại là 22.0. Tôi muốn loại bỏ các số thập phân và chuyển đổi nó thành một chuỗi.
Chỉ cần tự hỏi: mẫu "% f" có thực sự hoạt động trên Chuỗi là đầu vào không? Mục đích là gì bằng cách chuyển một số thành một chuỗi; sau đó định dạng chuỗi đó thành số? – GhostCat
Đối với java, '78871234510124568.0' và' 78871234510124576' là cùng một số, bởi vì một đôi không đủ lớn để lưu trữ rất nhiều số thập phân chính xác như vậy – Ferrybig
Ý định của tôi đặt câu hỏi này là vì tôi đang đọc một bảng excel bằng cách sử dụng apache POI ... với tất cả các loại tế bào được nói chung trong Excel.am bằng cách sử dụng getNumericCellValue() để đọc giá trị của một tế bào ... mà luôn luôn trả về số ở định dạng thập phân Ví dụ 222 sẽ được trả lại là 22.0 ... Tôi muốn loại bỏ thập phân và chuyển đổi nó đến một chuỗi – user2918673