На самом деле предикат truncate/3
в Прологе легко определить.Допустим, мы хотим обрезать вещественное число X
до N
десятичных знаков и сохранить его результат в Result
.Используя математическую функцию усечения в этом сайте Википедии , мы можем определить предикат следующим образом:
% truncation for positive numbers
truncate(X,N,Result):- X >= 0, Result is floor(10^N*X)/10^N, !.
% truncation for negative numbers
truncate(X,N,Result):- X <0, Result is ceil(10^N*X)/10^N, !.
Я использую cut, потому что два вышеупомянутых случая взаимоисключающие.