2008-10-25 31 views
6

Làm cách nào để chuyển đổi một số Int64 thành loại Int32 trong F # mà không sử dụng Microsoft.FSharp.Compatibility.Int32.of_int64?F # int64 to int

Tôi làm điều này vì tương tác dường như không hoạt động khi tôi thử:

open Microsoft.FSharp.Compatibility 

Với FSharp.PowerPack thêm vào như là một tài liệu tham khảo nó nói:

lỗi FS0039: Không gian tên 'Khả năng tương thích 'không được xác định.

Chỉnh sửa: Có ai có câu trả lời cho câu hỏi không? Các gợi ý về các kiểu int rất hữu ích và mang tính thông tin, nhưng tôi đang gặp vấn đề tương tự khi mở không gian tên powerpack trong tương tác F #.

Trả lời

15

F # 1.9.6 có chức năng chuyển đổi loại hình để bạn có thể làm điều này:

let num = 1000 
let num64 = int64(num) 
10

Chú ý rằng trong loại chuyển đổi, khi bạn giảm kích thước của một giá trị, các byte quan trọng nhất được vứt bỏ , vì vậy dữ liệu của bạn có thể bị cắt bớt:

> let bignum = 4294967297L;; 
val bignum : int64 

> let myint = int32(bignum);; 
val myint : int32 

> myint;; 
val it : int32 = 1 
1

Lưu ý rằng các chức năng để chuyển đổi thành từng loại số nguyên có cùng tên với loại và được xác định trong đặc tả thư viện (xem bên dưới). (Với việc phát hành của CTP (1.9.6.2), rất nhiều thư viện và các không gian tên thay đổi một chút so với phiên bản trước, nhưng nó có lẽ sẽ có nhiều 'ổn định' di chuyển về phía trước.)

http://research.microsoft.com/fsharp/manual/FSharp.Core/Microsoft.FSharp.Core.Operators.html

+0

Liên kết bị hỏng. –