Làm cách nào để làm tròn số thập phân thành 0,5 trong MATLAB gần nhất? Ví dụ. Tôi muốn 16.625 được làm tròn thành 16.5Làm tròn đến 0,5 trong matlab gần nhất
5
A
Trả lời
12
3
Nếu bạn đi nhân với 2 vòng - chia cho 2 tuyến đường, bạn có thể gặp một số lỗi số rất nhỏ (rất nhỏ). Bạn có thể làm điều đó bằng mod
để tránh điều này:
x = 16.625;
dist = mod(x, 0.5);
floorVal = x - dist;
newVal = floorVal;
if dist >= 0.25, newVal = newVal + 0.5; end
Bạn có thể làm điều đó trong bước ít hơn, nhưng ở đây tôi đã phá vỡ nó lên để bạn có thể xem những gì từng bước thực hiện.
1
a=16.625;
b=floor(a);
if abs(a-b-0.5) <= 0.25
a=b+.5;
else
if a-b-0.5 < 0
a=b;
else
a=b+1;
end
end
Điều này mang lại câu trả lời đúng - tôi không có! Tôi sẽ xóa tên của tôi, nhưng tôi khuyên bạn nên khái quát kết quả (nghĩa là nếu chúng ta muốn làm tròn đến 0,05 gần nhất ...) – aardvarkk
vâng, tôi đã thực sự gõ nhận xét cho câu trả lời của bạn, tôi sẽ chỉnh sửa. –