截断Prolog中的浮点数



如何将浮点数截断为prolog中的N小数点n?

是否有任何内置工具?

实际上,很容易在prolog中定义谓词truncate/3。假设我们希望将实际号码截断为XN小数点位置并将其结果存储在Result中。在此Wikipedia站点中,使用数学函数进行截断,我们可以按以下方式定义谓词:

    % 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, !. 

我使用剪切,因为以上两个情况是相互排斥的。

相关内容

  • 没有找到相关文章

最新更新