Bạn viết hàm chuyển Real sang Double interger, sau đó dùng hàm DI->BCD để chuyển qua BCD, nhưng cách này (với khả năng của mình) có hạn chế là bạn k giữ dc hệ số thập phân, nghĩa là 8.5 lúc ày chỉ còn 8.
Mình có viết cho bạn hàm tách 1 số real ra 2 số dint, mình chỉ lấy 1 số lẻ.(vd: 8.51 mình sẽ lấy ra 8 và 5)
SET
R #OVERLIMIT
L #IN_DATA //load data vào, dữ liệu sau khi ra fc105
PUSH
TRUNC
JO FLT
T #TEMP_DATA
T #OUT_DATA //out phần nguyên
DTR
-R
T #TEMP_DATA_TRUNC
L 1.000000e+001
*R
TRUNC
T #OUT_DATA1 //out phần thập phân
SAVE
BEU
FLT: S #OVERLIMIT
CLR
SAVE
Để mình nói thuật toán cho bạn dễ hiểu: Mình lấy data vào (real), dùng truncate để lấy phần nguyên. Sau đó lấy số real dầu vào trừ giá trị truncate để lấy phần thập phân. Next, lấy hiệu số nhân 10 và truncate lần nữ sẽ lấy dc phần lẻ sau dấu thập phân. Với cách viết này sẽ có 1 số trường hợp bị sai lêch giá trị 0.1,
nhưng k ảnh hưởng lắm, bạn suy nghĩ và cải thiện chương trình nha
Mình đi công tác ở xa k có internet nên h mới vào được diễn đàn, cảm ơn bạn nhiều nhé :)
Xin lỗi bạn, tôi không nghĩ tôi dùng "đề nghị", "cảm ơn bạn nhiều" có nghĩa là ra lệnh. Take it easy! Dù sao cũng xin tiếp thu và rút kinh nghiệm ạ!
Tôi nhờ chủ topic chỉ dẫn là vì link tài liệu : http://plcvietnam.com.vn/showthread....3%A2m-C%C4%90T
không vào được