Tôi cố gắng để hiểu tại sao sử dụng '/' với long double theo cách sau dẫn đến một giá trị 0,000000 trong khi cùng mã với đôi khôngSử dụng '/' với đôi dài?
double d = (double)total_results/(double)total_points;
Cung cấp giá trị 0,785403 nhưng
long double d = (long double)total_results/(long double)total_points;
Cung cấp giá trị 0.000000. Tôi cố gắng để có được giá trị chính xác nhất cho
EDIT 'TOTAL_RESULTS/total_points': Cuối cùng các lỗi đơn giản là rằng tôi đã xuất ra nó bằng cách sử '% f' thay vì '% Lf'
Trước
printf("Running on %d thread(s), results is %f.\n", NUM_THREADS, d);
Sau
printf("Running on %d thread(s), results is %Lf.\n", NUM_THREADS, d);
nền tảng/trình biên dịch nào? – CharlesB
Các loại total_results và total_points là gì? Đúc chúng thành 'long double' có thể thay đổi giá trị truy cập theo cách sai – Eregrith
Nó hoạt động với tôi trong C++ –