Có một vấn đề khá ngớ ngẩn với số pi trong C và C ++. Theo như tôi biết M_PI
được xác định trong math.h
không được yêu cầu bởi bất kỳ tiêu chuẩn.
Các tiêu chuẩn C ++ mới đã giới thiệu rất nhiều phép toán phức tạp trong thư viện tiêu chuẩn - các hàm hyperbol, std::hermite
và std::cyl_bessel_i
, các bộ tạo số ngẫu nhiên khác nhau, v.v.
Có bất kỳ tiêu chuẩn 'mới' nào mang lại một hằng số cho pi không? Nếu không - tại sao? Làm thế nào để tất cả các toán học phức tạp này làm việc mà không có nó?
Tôi biết các câu hỏi tương tự về pi trong C ++ (chúng đã có vài năm và tiêu chuẩn cũ); Tôi muốn biết tình trạng hiện tại của vấn đề.
Tôi cũng rất quan tâm tại sao oh tại sao C ++ vẫn không có hằng số pi nhưng có nhiều phép toán phức tạp hơn.
CẬP NHẬT: Tôi biết rằng tôi có thể tự định nghĩa pi là 4 * atan (1) hoặc acos (1) hoặc double pi = 3.14. Chắc chắn rồi. Nhưng tại sao năm 2018 tôi vẫn phải làm điều đó? Làm thế nào để các hàm toán học tiêu chuẩn hoạt động mà không cần pi?
CẬP NHẬT2: Theo báo cáo chuyến đi này cho cuộc họp của Ủy ban C ++ vào tháng 7 năm 2019 tại Cologne, đề xuất P0631 (hằng số toán học) đã được chấp nhận vào C ++ 20. Vì vậy, có vẻ như cuối cùng chúng ta sẽ có số pi trong thư viện tiêu chuẩn!