gpt4 book ai didi

floating-point - PROLOG - 如何舍入 float 的小数?

转载 作者:行者123 更新时间:2023-12-05 08:53:45 27 4
gpt4 key购买 nike

我在知识库中有这一行:

height(Hipot,Y) :- Y is sin(pi/6)*Hipot.

它计算直角三角形的直角之一。

当向 Prolog 询问 Y 的值时,即 cathetus,我得到一个不准确的数字:

?- height(1,Y).
Y = 0.49999999999999994.

但实际值为1/2,所以应该输出0.5。我猜不准确是因为使用了 pi,但我想继续使用它,所以如何将 Y 舍入到 0.5?

最佳答案

一个直接的解决方案是使用 format/2输出具有给定“精度”的数字。例如:

?- height(1,Y), format("~2f", [Y]).0.50Y = 0.49999999999999994.

请注意, float 会一直导致此类问题,并且我建议尽可能使用有理数等示例。

关于floating-point - PROLOG - 如何舍入 float 的小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52979922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com