Câu trả lời:
TRUNC()
được thiết kế để loại bỏ phần thập phân của bất kỳ số nào ngay lập tức và không có bất kỳ sửa đổi nào đối với phần không thập phân.
Vì vậy, theo câu trả lời của LinYan , bạn chỉ cần sử dụng:
TRUNC(A1)
để có được phần nguyên của giá trị trong A1
A1-TRUNC(A1)
để có được phần phân số của giá trị trong A1
Không giống như FLOOR()
, TRUNC()
hoạt động trên cả số dương và số âm mà không cần điều chỉnh và hoạt động theo cùng một cách trong cả Microsoft Excel và LibreOffice.
FLOOR()
yêu cầu tham số quan trọng phải có cùng dấu với số đang được xử lý (nếu không sẽ gây ra lỗi), do đó, 1
cuối cùng sẽ phải thay đổi -1
để xử lý số âm hoặc bạn có thể chèn SIGN()
và làm phức tạp thêm công thức một cách không cần thiết.
Và, trong OpenOffice và LibreOffice, FLOOR()
cũng có một tham số "chế độ" thứ ba (so với Excel) bổ sung để thay đổi kết quả mà hàm trả về cho các số âm.
bạn có thể thử FLOOR
hàm, floor(A1,1)
cho phần nguyên của A1, A1-floor(A1,1)
cho phần thập phân của A1.
Ví dụ: hãy tưởng tượng A1 là 167,583:
int(A1)
sẽ cho 167 và
mod(A1,1)
sẽ cho 0,583.
int(1.6) === 1
và int(-1.6) === -2
... Nhưng trunc(decimal;0)
hoạt động chính xác cho cả hai.
Đừng nghĩ rằng có một chức năng cụ thể để làm điều này, tuy nhiên bằng cách lồng một vài cái bạn có thể.
Giả sử bạn đang cố trả về giá trị thập phân bên phải cho ô A1, công thức sẽ là:
=MID(A1,SEARCH(".",A1,1)+1,LEN(A1))
Thực tế, những gì bạn đang làm ở đây là sử dụng hàm MID để trả về một số lượng ký tự bắt đầu từ dấu thập phân. Tất cả 3 tham chiếu đến A1 cần được cập nhật cho mỗi ô bạn đang nhắm mục tiêu để nó hoạt động chính xác.
=RIGHT(TEXT(ABS(A1)-INT(ABS(A1));",00");2)
Điều này sẽ không hoàn hảo, và thẩm mỹ nữa chứ?