2009-07-28 63 views
6

Do giá trị qty vượt quá những gì VBScript INT có thể lưu trữ, tôi nhận được một thông báo lỗi khá khó chịu (thực sự là người dùng) ... Đây hoàn toàn là trường hợp twitpocalypse.Classic ASP App CINT thất bại - twitpocalypse v2

Vì CINT() sẽ không hoạt động trong trường hợp này, giải pháp tốt nhất là gì?

requestqty = 40200 
CInt() max = 32767 

CInt(requestqty) 

EDIT
CLng() dường như làm các trick, bất kỳ rủi ro đối với các mã để thay đổi tất cả CInt() để CLng(). Từ những gì tôi đã đọc dưới đây và khác trên web, có vẻ như có rất ít lý do để thậm chí sử dụng CInt(). Tôi đã không viết ứng dụng cụ thể này và không biết tại sao một ứng dụng được sử dụng trên ứng dụng khác, nhưng lại không muốn khắc phục vấn đề và khắc phục hoàn toàn vấn đề này trong ứng dụng để nó không xảy ra nữa ...

+0

Bạn có thể sử dụng gấp đôi không? – NoCarrier

Trả lời

11

Đường cao tốc sử dụng dài thay vì int trong VBScript (trừ khi bạn đặc biệt muốn giới hạn giá trị cho phạm vi int).

Không có lợi ích về hiệu suất khi sử dụng loại nhỏ hơn và không có lợi ích về dung lượng lưu trữ vì tất cả các biến là các biến thể, vì vậy tất cả các loại đơn giản đều sử dụng cùng một lượng bộ nhớ.

Sử dụng chức năng CLng thay vì chức năng CInt.

+0

Bất kỳ lý do nào để không thay đổi tất cả CInt thành CLng? Có rủi ro nào không? Tôi đã không viết các ứng dụng và cần phải "sửa chữa" nó khá nhanh ... Tôi không chạm vào VBScript và ASP cổ điển tất cả những gì nhiều, do đó, một chút dưới nước ... – RSolberg

+0

Bạn có thể thay đổi tất cả CInt để CLng, nhưng sau đó bạn phải kiểm tra xem các giá trị không bị cắt bớt sau này trong quá trình, như được lưu trữ trong một trường nhỏ trong cơ sở dữ liệu. – Guffa

+0

Hoàn hảo .... Cảm ơn ... – RSolberg

2

CLng hoặc CDec hoặc CDbl

+0

'CDec()' không phải là một hàm VBScript. – Lankymart

2

CLng() và sử dụng Long thay vì Int?