Vấn đề ở đây là bạn đang nhầm lẫn về vấn đề loại thập phân trong quyền truy cập và giá trị của các giá trị dấu phẩy động đơn và đôi có sẵn trong truy cập.
Nếu bạn sử dụng loại dữ liệu tiền tệ trong truy cập, đây là số nguyên được chia tỷ lệ và sẽ không tạo số làm tròn (đó là điều mà hầu hết chúng ta sử dụng để tính toán và báo cáo tài chính). Bạn cũng có thể sử dụng các giá trị thập phân trong truy cập, và một lần nữa chúng không làm tròn chút nào vì chúng là các số thập phân được đóng gói.
Tuy nhiên, cả giá trị đơn và đôi có sẵn bên trong quyền truy cập thực tế là định dạng tương tự và tuân theo tiêu chuẩn điểm nổi IEEE.
Đối với một biến truy cập duy nhất, đây là một số 32bit, và phạm vi là:
-3.402823E38
to
-1.401298E-45 for negative values
và
1.401298E-45
to
3.402823E38 for positive values
Đó có vẻ như là tương tự với tôi như là tiêu chuẩn IEEE 754.
Vì vậy, nếu bạn thêm giá trị vào quyền truy cập dưới dạng duy nhất, bạn sẽ nhận được kết quả tương tự.
Vì vậy, Intel dựa trên, và truy cập đơn và đôi tôi tin là giống như tiêu chuẩn IEEE này.
Vấn đề thực sự duy nhất ở đây là định dạng dữ liệu gốc bạn truy cập và loại văn bản hoặc chuỗi hoặc quy trình chuyển đổi nào xảy ra khi dữ liệu đó được kéo vào và lưu trữ?
Truy cập có thể chuyển đổi số. Hãy thử gõ các giá trị tại dấu nhắc dòng lệnh truy cập (debug cửa sổ)
? hex(255)
Above will show FF
? csng(&hFF)
Above will show 255
Edit:
Ah, ok, tôi thấy bây giờ tôi có điều này đảo ngược, sai của tôi ở đây. Vấn đề ở đây là giả sử bạn chuyển đổi một số sang định dạng cũ hơn của IBM (quá 64) ?, bạn sẽ THEN phải có được bàn tay của bạn trên mã của họ mà họ sử dụng để thêm những con số đó. Trong thực tế, ngay cả khi đó, các mô hình IBM khác nhau tùy thuộc vào những gì bạn mua thực sự tạo ra các kết quả khác nhau (nhiều tiền hơn = chính xác hơn).
Vì vậy, bạn không chỉ cần các quy trình chuyển đổi để chuyển đổi thành biểu diễn bên trong, bạn THEN cần các thủ tục cộng/trừ/nhân các số đó. Vì vậy, chỉ có thói quen chuyển đổi sẽ không giúp bạn đạt được rất nhiều, vì bạn cũng phải lặp lại các thói quen chính xác của họ mà làm toán. Những loại thói quen đó có thể không được tạo ra bằng nhau về cách chúng làm tròn số vv.
Bạn có chắc chắn báo cáo trên IBM đã sử dụng dấu phẩy động không? Hầu hết những thứ đó đều sử dụng BCD. – Gabe
Tôi không chắc chắn 100% - quyết định này dựa trên đồng nghiệp nhớ một lập trình viên máy tính lớn giải thích cách đây nhiều năm rằng lý do chúng tôi không thể khớp với dữ liệu cũ hơn là do "thay đổi cách trình biên dịch xử lý số thập phân" tài liệu hướng dẫn rằng SAS đã thêm hỗ trợ cho điểm nổi IEEE cùng với điểm nổi của IBM một vài năm trước khi chúng ta ngừng nhìn thấy những mâu thuẫn. –
Định dạng BCD không phải là định dạng dấu chấm động Hoặc không phải trong thế giới máy tính mini S/34 của IBM, S/36 và S/38 vào cuối những năm 70 và 80. http://en.wikipedia.org/wiki/Binary-coded_decimal –