Tôi vô cùng khó chịu bởi sự thiếu chính xác của các hàm trig nội tại trong CLR. Nó cũng biết rằngĐộ chính xác của Math.Sin() và Math.Cos() trong C#
Math.Sin(Math.PI)=0.00000000000000012246063538223773
thay vì 0. Điều gì đó tương tự xảy ra với Math.Cos(Math.PI/2)
.
Nhưng khi tôi đang làm một chuỗi dài các tính toán rằng trên trường hợp đặc biệt đánh giá để
Math.Sin(Math.PI/2+x)-Math.Cos(x)
và kết quả là zero cho x = 0,2, nhưng không phải không cho x = 0,1 (thử nó). Một vấn đề khác là khi đối số là một số lượng lớn, sự thiếu chính xác sẽ tương ứng lớn.
Vì vậy, tôi tự hỏi nếu có ai đã mã hóa một số đại diện tốt hơn về các chức năng trig trong C# để chia sẻ với thế giới. CLR có gọi một số thư viện toán C chuẩn thực hiện CORDIC hay một cái gì đó tương tự? liên kết: wikipedia CORDIC
Bạn cho rằng độ chính xác của pi là gấp đôi là bao nhiêu? –
Nếu bạn muốn toán học biểu tượng, hãy làm toán học biểu tượng. Nếu bạn sử dụng các loại dấu phẩy động, bạn sẽ có được độ chính xác hữu hạn. – AakashM
-1 vì không "làm bài tập ở nhà", và cũng nghĩ rằng 'System.Math' là một phần của C# (gợi ý: nó là một phần của.Nền tảng NET). –