2010-01-24 36 views

Trả lời

10

Nếu bạn chỉ muốn sử dụng số nguyên lớn, bạn có thể sử dụng bigint, mà bạn có thể phạm vi vào một tệp:

use bigint; 

hay chỉ là một phạm vi giới hạn:

{ 
use bigint; 
...; 
} 

Nếu bạn cần số lượng dấu phẩy động lớn cũng như số nguyên lớn, bạn có thể sử dụng pragma bignum theo cùng một cách. Dù bằng cách nào, những điều này sẽ làm chậm chương trình của bạn một chút (hoặc đáng kể nếu bạn đang làm rất nhiều bài toán), vì vậy bạn chỉ nên sử dụng chúng cho các phần mà bạn thực sự cần chúng. Tuy nhiên, nhanh hơn không tốt hơn chính xác. :)

Nếu bạn muốn kiểm soát chính xác những con số nào sử dụng phép toán big*, bạn có thể sử dụng các lớp cơ bản triển khai chúng và tự tạo đối tượng thay vì áp dụng ngữ nghĩa big* cho mọi thứ. Hãy xem các mô-đun Math::Big*.

Tôi nói về điều này nhiều hơn trong chương điểm chuẩn của Mastering Perl vì máy tính quá nhanh hiện nay để sử dụng giai thừa như hàm chậm và chúng tôi cũng thêm một số lớn vào số Effective Perl Programming, 2nd Edition sắp tới.

15
+4

và có thể 'sử dụng bigint;' làm cho * mọi * chữ số trong phạm vi của nó là BigInt không có 'Math :: BigInt-> new'. Sử dụng cẩn thận, tất nhiên. – hobbs

+4

Hoặc 'sử dụng bignum;', mở rộng bigint với BigFloat. – Anonymous

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