2009-12-21 68 views

Trả lời

39

Ví dụ cụ thể của bạn có thể được lưu trữ trong long (hoặc java.lang.Long nếu điều này là cần thiết).

Nếu tại bất kỳ điểm nào bạn cần số lớn hơn, bạn có thể thử java.math.BigInteger (nếu số nguyên), hoặc java.math.BigDecimal (nếu chữ số thập phân)

+9

Những lớp này là rất chậm, và chỉ nên được sử dụng nếu bạn thực sự cần rất nhiều chữ số. 10 chữ số có thể dễ dàng được lưu trữ trong một "dài". Tuy nhiên, bạn cần 50 đến 5000 chữ số, hai lớp này là cách tốt nhất để làm điều đó. – Karl

+1

khá chính xác .. Tôi theo bản năng cho rằng anh ta đã thử sự hiển nhiên và không thành công. Đã chỉnh sửa câu trả lời của tôi để câu trả lời đúng. – Bozho

28

Bạn có thể lưu trữ này trong long. A long có thể lưu trữ một giá trị từ -9223372036854775808 đến 9223372036854775807.

+0

cletus: lấy điểm, đã chỉnh sửa. –

7

Bản gốc dài hoặc java.lang.Long trình bao bọc cũng có thể lưu trữ mười chữ số.

+1

+1 Dài có thể lưu trữ 18-19 chữ số với độ chính xác tuyệt đối. Trừ khi OP chỉ ra rằng họ cần nhiều hơn thế này, lâu dài là một lựa chọn tốt hơn nhiều so với BigInteger. – cletus

3

bạn có thể sử dụng dài hoặc gấp đôi.

+0

Một đôi? Nếu ví dụ OP của '9999999999' là dấu hiệu, thì không cần phải giới thiệu sự không chính xác của dấu phẩy động cho một số nguyên. –

+0

yup ben bên phải của bạn nhưng chỉ cho thấy anh ta, chúng tôi có thể sử dụng những điều này quá. Nó thực sự phụ thuộc vào yêu cầu kinh doanh của bạn. – akellakarthik

25

Ngoài tất cả các câu trả lời khác, tôi muốn lưu ý rằng nếu bạn muốn viết số đó dưới dạng chữ trong mã Java của mình, bạn cần phải thêm L hoặc l để thông báo cho trình biên dịch rằng đó là long hằng số:

long l1 = 9999999999; // this won't compile 
long l2 = 9999999999L; // this will work 
0

Bạn có thể lưu trữ bằng cách tạo một đối tượng chứa số chuỗi giá trị để lưu trữ trong danh sách mảng. theo ví dụ: BigInt objt = new BigInt("999999999999999999999999999999999999999999999999999");

objt được tạo bởi hàm tạo của lớp BigInt. Bên trong lớp trông như thế.

BigInt{ 

ArrayList<Integer> myNumber = new ArrayList <Integer>();   

public BigInt(){} 

public BigInt(String number){ for(int i; i<number.length; i++){ myNumber.add(number.indexOf(i)); } } 

} 
+1

Điều này hoàn toàn không liên quan. Anh ta không hỏi về mảng hoặc danh sách hoặc số có 52 chữ số thập phân. Nó thậm chí không biên dịch. – EJP

6

Sử dụng kiểu dữ liệu BigInt với các hoạt động ngầm định của nó. Điểm cộng cho nó là nó sẽ không đưa ra câu trả lời trong biểu diễn hàm mũ. Nó sẽ cho kết quả chiều dài đầy đủ

Dưới đây là một ví dụ bổ sung

 BigInteger big1 = new BigInteger("1234567856656567242177779"); 
     BigInteger big2 = new BigInteger("12345565678566567131275737372777569"); 
     BigInteger bigSum = big1.add(big2); 
     System.out.println(bigSum); 
+0

Chào mừng bạn đến với Stack Overflow. nếu bạn tìm thấy bất kỳ câu hỏi tương tự ở bất kỳ đâu thì hãy đánh dấu câu hỏi đó là một bản sao thay vì đưa ra cùng một giải pháp một lần nữa. hoặc bạn có thể đưa ra một liên kết của câu trả lời của bạn được đăng trước đó. – Shell

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