HI,Hành vi làm tròn toán học khác nhau giữa Linux, Mac OS X và Windows
Tôi đã phát triển một số mã C/C++ hỗn hợp, với một số tính toán số chuyên sâu. Khi được biên dịch trong Linux và Mac OS X, tôi nhận được kết quả rất giống nhau sau khi mô phỏng kết thúc. Trong Windows chương trình biên dịch là tốt, nhưng tôi nhận được kết quả rất khác nhau và đôi khi chương trình dường như không hoạt động.
Tôi đã sử dụng trình biên dịch GNU trong tất cả các hệ thống. Một số người bạn đề nghị tôi để thêm -frounding-math và bây giờ các phiên bản cửa sổ dường như làm việc ổn định hơn, nhưng Linux và Os X, kết quả của họ, không thay đổi ở tất cả.
Bạn có thể đề xuất một tùy chọn khác để có được sự phù hợp hơn giữa các phiên bản Win và Linux/OSX không?
Cảm ơn
P.D. Tôi cũng đã thử -O0 (không tối ưu hóa) và chỉ định -m32
Linux và OS X đều sử dụng GCC, vì vậy tôi mong đợi chính xác kết quả tương tự - miễn là cả hai đều chạy trên cùng một kiến trúc bộ vi xử lý. Bạn có thực sự chỉ nhận được kết quả 'tương tự' ở đó không? Nếu vậy, một số ngẫu nhiên dường như được tiêm vào tính toán của bạn. Bất kỳ biến uninitialized ?! –