Nó phụ thuộc vào làm tròn trung gian và bộ làm tròn cuối cùng.
thấy điều này để biết thêm:
D.13a Tròn
COBOL cung cấp khả năng chỉ định làm tròn trong báo cáo số học và các biểu thức tại các điểm khác nhau trong quá trình đánh giá và như các giá trị được chuẩn bị để lưu trữ trong việc tiếp nhận Các mục dữ liệu.
Có tám hình thức khác nhau của làm tròn được hỗ trợ bởi tiêu chuẩn này:
• AWAY-FROM-ZERO: làm tròn là các giá trị gần nhất của cường độ lớn hơn.
• NEAREST-AWAY-FROM-ZERO: Làm tròn là giá trị gần nhất. Nếu hai giá trị bằng nhau, giá trị có độ lớn hơn được chọn. Chế độ này trong lịch sử được liên kết với mệnh đề ROUNDED trong các phiên bản trước của tiêu chuẩn COBOL.
• NEAREST-EVEN: Làm tròn là giá trị gần nhất. Nếu hai giá trị bằng nhau gần nhau, giá trị có chữ số ngoài cùng bên phải được chọn. Chế độ này đôi khi được gọi là "Làm tròn ngân hàng".
• NEAREST-TOWARD-ZERO: Làm tròn là giá trị gần nhất. Nếu hai giá trị bằng nhau, giá trị với độ lớn nhỏ hơn được chọn.
• PROHIBITED: Vì giá trị không thể biểu diễn chính xác theo định dạng mong muốn, điều kiện EC-SIZE-TRUNCATION được đặt thành tồn tại và kết quả của thao tác không xác định.
• TOWARD-GREATER: Làm tròn về phía giá trị gần nhất có giá trị đại số lớn hơn.
• TOWARD-LESSER: Làm tròn hướng tới giá trị gần nhất có giá trị đại số nhỏ hơn.
• TRUNCATION: Làm tròn là giá trị gần nhất có độ lớn nhỏ hơn. Chế độ này trong lịch sử được liên kết với sự vắng mặt của mệnh đề ROUNDED cũng như cho sự hình thành các kết quả trung gian trong tiêu chuẩn COBOL trước đó.
Lập trình viên có thể chỉ định cách thức các giá trị trung gian riêng lẻ được làm tròn khi chúng được lưu trữ vào việc nhận các mục dữ liệu thông qua mệnh đề ROUNDED; có thể chọn chế độ làm tròn mặc định được sử dụng khi mệnh đề ROUNDED xuất hiện mà không có thêm tiêu chuẩn nào trên một mục dữ liệu nhận được thông qua mệnh đề DEFAULT ROUNDED MODE của đoạn OPTIONS của IDENTIFICATION DIVISION; và có thể chỉ định cách hoạt động số học và chuyển đổi đến và từ các biểu mẫu trung gian được làm tròn thông qua mệnh đề INTERMEDIATE ROUNDING.
D.13a.1 Intermediate tròn
làm tròn Intermediate được áp dụng khi các mục dữ liệu được lấy ra để đưa vào hoạt động một số học hoặc biểu thức số học, và trong quá trình thực hiện các toán tử số học để tạo ra một kết quả trung gian.
Trong tiêu chuẩn trước đó, để nhân và chia trong Số học chuẩn, chế độ làm tròn mặc định cho kết quả không chính xác được cắt ngắn thành 32 chữ số có nghĩa. Mặc định này không thay đổi trong tiêu chuẩn này và cũng là mặc định cho số học Chuẩn-nhị phân và Chuẩn thập phân.
Khi giá trị trung gian có thể được biểu diễn chính xác ở định dạng trung gian thích hợp, giá trị chính xác được sử dụng. Trong trường hợp giá trị không thể được biểu diễn chính xác, người dùng cũng có thể chỉ định các chế độ làm tròn khác cho phép tính số học và chuyển đổi đến và từ các biểu mẫu trung gian được sử dụng trong các phép tính số học thông qua mệnh đề INTERMEDIATE ROUNDING tùy chọn của OPTIONS đoạn của DIVISION DIVISION.
Cụ thể, các tùy chọn sau đây có sẵn:
• INTERMEDIATE làm tròn là gần-AWAY-FROM-ZERO • INTERMEDIATE làm tròn là gần-NGAY CẢ • INTERMEDIATE làm tròn là CẤM • INTERMEDIATE làm tròn là cắt ngắn
mà mô tả phụ được tìm thấy trong D.13a, Làm tròn.
Nếu mệnh đề INTERMEDIATE ROUNDING không được chỉ định, thì GIAI ĐOẠN INTERMEDIATE TRUNCATION được giả định. Điều này không thay đổi so với các tiêu chuẩn trước đó.
D.13a.2 cuối cùng làm tròn (mệnh đề làm tròn)
làm tròn cuối cùng áp dụng cho sự hình thành của các kết quả cuối cùng của biểu thức hoặc tuyên bố, khi hoàn thành đánh giá các báo cáo kết quả hoặc biểu hiện, ngay trước thẻ kết quả được đặt ở đích. Hình thức làm tròn này được liên kết với mệnh đề ROUNDED.
Trong các tiêu chuẩn COBOL trước đó, chỉ có hai phương pháp làm tròn “cuối cùng” được cung cấp: làm tròn về phía độ lớn nhỏ hơn (cắt ngắn, được báo hiệu bởi sự vắng mặt của mệnh đề ROUNDED); và làm tròn đến các giá trị gần nhất, và nếu hai giá trị bằng nhau, hãy chọn giá trị có độ lớn hơn (được báo hiệu bởi sự hiện diện của mệnh đề ROUNDED).
Mệnh tròn đã được tăng cường để cho phép lựa chọn rõ ràng của bất kỳ trong tám phương thức làm tròn (kể cả hai trước đây có sẵn):
• Chế độ làm tròn là AWAY-FROM-ZERO • Chế độ làm tròn là gần-AWAY -Từ-ZERO • Chế độ làm tròn là gần-NGAY CẢ • Chế độ làm tròn là gần-ĐỐI-ZERO • Chế độ làm tròn là cẤM • tròn-mODE LÀ ĐỐI-LỚN • Chế độ làm tròn là ĐỐI-Lesser • tròn chế độ là TRUNCATION
Nếu mệnh đề ROUNDED không có trong một kết quả nhất định, các quy tắc cho ROUNDED MODE IS TRUNCATION sẽ được áp dụng.
Mệnh đề DEFAULT ROUNDED MODE tùy chọn trong phần OPTIONS của IDENTIFICATION DIVISION được cung cấp để cho phép người dùng chỉ định chế độ làm tròn cho bất kỳ thao tác nào mà mệnh đề ROUNDED xuất hiện mà không có MODE IS subclause.
Các DEFAULT tròn khoản THỨC có thể thực hiện bất kỳ các hình thức:
• DEFAULT THỨC được làm tròn là AWAY-FROM-ZERO • DEFAULT THỨC được làm tròn là gần-AWAY-FROM-ZERO • DEFAULT THỨC được làm tròn là gần-NGAY CẢ • DEFAULT THỨC được làm tròn là gần-đỐI-ZERO • DEFAULT THỨC được làm tròn là cẤM • DEFAULT THỨC được làm tròn là đỐI-LỚN • DEFAULT tròn THỨC lÀ đỐI-Lesser • DEFAULT tròn chế độ được cắt ngắn
mà các điều khoản của DEFAULT ROUNDED MODE là mệnh đề a được mô tả trong D.13a, Làm tròn.
Nếu mệnh đề DEFAULT ROUNDED MODE không xuất hiện trong chương trình, hiệu ứng của mệnh đề ROUNDED mà không có MODE IS subclause như thể là ROUNDED MODE IS NEAREST AWAY FROM ZERO đã được chỉ định. Điều này cung cấp chức năng tương tự có sẵn trong các tiêu chuẩn COBOL trước.
Nếu mệnh đề DEFAULT ROUNDED MODE xuất hiện, các mệnh đề ROUNDED không có MODE IS subclause được coi như đã được chỉ định với chế độ làm tròn được chỉ định trong mệnh đề DEFAULT ROUNDED MODE.
câu trả lời Odd ... tôi nhận được 597,88 mà tôi tin là đúng. Bạn đang sử dụng trình biên dịch COBOL nào? – NealB