Tôi đang cố gắng để chẩn đoán và sửa chữa một lỗi mà nắm để X/Y năng suất một kết quả không ổn định khi X và Y là nhỏ:Làm thế nào để chia số chính xác gấp đôi nhỏ một cách chính xác mà không có lỗi chính xác?
Trong trường hợp này, cả hai cx và patharea tăng trơn tru. Tỷ lệ của chúng là một asymptote trơn tru ở số cao, nhưng thất thường đối với các số "nhỏ". Ý nghĩ đầu tiên rõ ràng là chúng ta đạt tới giới hạn độ chính xác của dấu phẩy động, nhưng chính con số thực tế lại không ở gần nó. Các kiểu "Số" ActionScript là các float nổi chính xác IEE 754, vì vậy phải có 15 chữ số thập phân chính xác (nếu tôi đọc đúng).
Một số giá trị đặc trưng của mẫu số (patharea):
0.0000000002119123
0.0000000002137313
0.0000000002137313
0.0000000002155502
0.0000000002182787
0.0000000002200977
0.0000000002210072
Và tử số (cx):
0.0000000922932995
0.0000000930474444
0.0000000930582124
0.0000000938123574
0.0000000950458711
0.0000000958000159
0.0000000962901528
0.0000000970442977
0.0000000977984426
Mỗi tăng đơn điệu, nhưng tỷ lệ này là hỗn loạn như đã thấy ở trên.
Với số lượng lớn hơn, nó sẽ lắng xuống thành hyperbola trơn tru.
Vì vậy, câu hỏi của tôi: cách chính xác để xử lý các con số rất nhỏ khi bạn cần phải phân chia cái khác là gì?
Tôi nghĩ nhân nhân tử số và/hoặc mẫu số trước 1000, nhưng không thể làm việc được.
Mã thực tế được đề cập là chức năng recalculate()
here. Nó tính toán trọng tâm của một đa giác, nhưng khi đa giác là nhỏ, các trung tâm nhảy thất thường xung quanh nơi này, và có thể kết thúc một khoảng cách dài từ đa giác. Chuỗi dữ liệu ở trên là kết quả của việc di chuyển một nút của đa giác theo một hướng nhất quán (bằng tay, đó là lý do tại sao nó không hoàn toàn trơn tru).
Đây là Adobe Flex 4.5.
Điều gì đã xảy ra khi bạn nhân với 1000, chia, rồi chia cho 1000? – K2xL
Vâng, không có gì tốt :) Trong một hiện thân hóa thân, tôi đã kết thúc với một thương với chỉ hai chữ số chính xác. Tại thời điểm này, tôi cảm thấy như tôi đã thực sự mã hóa bởi thử và sai, do đó mục tiêu của tôi để có được một chút về giáo dục đúng cách để làm việc. –
Ngoài ra - bạn sẽ nhân tử số hay mẫu số? Tôi đoán sau? –