Усечение числа с плавающей запятой в прологе - PullRequest
0 голосов
/ 26 апреля 2018

Как усечь число с плавающей запятой до N десятичных знаков в Прологе?

Есть ли встроенный инструмент для этого?

1 Ответ

0 голосов
/ 26 апреля 2018

На самом деле предикат 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, потому что два вышеупомянутых случая взаимоисключающие.

...