PDA

View Full Version : Hỏi về kỹ thuật làm tròn số trong Access



Solana
18-05-2006, 14:12
Mình cần làm tròn số trong Access nhưng hàm ROUND() của Access hoạt động không tốt lắm. Ví dụ:
ROUND(7.25, 1) => 7.2
ROUND(7.25000001, 1) => 7.3
Có bác nào gặp phải vấn đề này chưa? Liệu có cách nào để khắc phục không? Mình muốn kết quả giống như hàm ROUND() trong Excel:
ROUND(7.25, 1) => 7.3
ROUND(7.25000001, 1) => 7.3

mtt333
18-05-2006, 15:25
Hic, chỉ còn cách
ROUND(7.25 + 1E-10, 1)
Nếu bạn đảm bảo hệ thống của bạn tính toán không đến 10 chữ số sau dấu phẩy. Nếu không thì lại phải tăng lên !e-11, -12, ... những cũng có giới hạn.

Solana
18-05-2006, 16:39
Cảm ơn bạn mtt333, chắc chỉ có cách này thôi. Tại sao thằng Access lại khịa ra kiểu làm tròn số giở hơi thế nhỉ?

lenguyenhung
13-04-2010, 20:02
làm tròn số trong hàm tính access

megaownage
19-04-2010, 10:49
Trong kỹ thuật làm tròn số, người ta vẫn thường hay bị vướng mắc ở câu: số 5 sử ra sao?

Theo số học, ta có 5 số nhỏ hơn 5 (0-4) và 5 số lớn hơn hay bằng 5 (5-9). Vì vậy trong các ngành khoa học tự nhiên, ta hay chọn: 4 trở xuống cắt bỏ, 5 trở lên tăng 1

Tuy nhiên trên thực tế, định luật như thế chưa hẳn đã lý tưởng. Tùy theo ngành ứng dụng, người ta có thể đặt ra các kiểu chia khác để tạo sự công bằng cho số 5 hơn.

Trong các ngành nghề cần phải dùng con số theo chiều hướng bảo thủ (conservative) như ngành kế toán và ngân hàng, người ta đặt ra luật 'tròn thành số chẵn'. Có nghĩa là khi gặp số 5, ta xét số đứng trước nó, nếu tăng 1 thành ra số chẵn thì làm, còn nếu không thì cắt bỏ. Vì vậy số 7.25 tròn thành 7.2 trong khi 7.35 thành 7.4

Access theo luật 'tròn thành số chẵn' này. Lý do tại sao và có đúng dắn hay không thì có nhiều nguồn giải thích khác nhau.

Để khắc phục (theo ý muốn của bạn) thì chỉ có cách của bạn mtt333, cộng thêm một số nhỏ vào đuôi để buộc Access không nghĩ đó là số 5 trơn. Hay làm tròn nó trong hàm tính như cách của bạn lenguyenhung.